WCF RESTFul 服务 - 404,其中的终结点找不到 2 个服务

本文关键字:服务 结点 找不到 RESTFul WCF | 更新日期: 2023-09-27 18:30:24

我有两个WCF服务Exchange1.svc和Exchange2.svc,它们都设置为RESTful JSON consummables。Exchange1.svc 工作正常,但是当我尝试发布到 Exchange2.svc 时,我收到"找不到终结点"消息。

我做错了什么?

我的IExchange2界面是:

[ServiceContract]
public interface IExchange2
{
    [System.ServiceModel.OperationContract(Name = "InsertReading")]
    [WebInvoke(UriTemplate = "/InsertReading?memberID={memberID}", Method = "POST", ResponseFormat = WebMessageFormat.Json)]
    void InsertReading(string memberID);
}

我尝试点击的网址是:http://localhost:49701/Exchange2.svc/DiaInsertReading?memberID=6519548

我的配置是:

<system.serviceModel>
<behaviors>
    <endpointBehaviors>
        <behavior name="MyNamespace.Exchange1Behavior">
            <webHttp/>
        </behavior>
        <behavior name="MyNamespace.Exchange2Behavior">
            <webHttp/>
        </behavior>             
    </endpointBehaviors>
</behaviors>
<services>
    <service name="MyNamespace.Exchange1">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange1Behavior" contract="MyNamespace.IExchange1" />
    </service>
    <service name="MyNamespace.Exchange2">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange2Behavior" contract="MyNamespace.IExchange2" />
    </service></services></system.serviceModel>

WCF RESTFul 服务 - 404,其中的终结点找不到 2 个服务

我已经编辑了我的帖子,因为答案没有帮助。由于您使用 svc 托管在 IIS 中,因此您无需像我在之前的答案中所说的那样在绑定中设置地址。基址将是服务器的位置。例如:http://localhost:49701/Exchange2.svc .如果点击此地址,则应访问 WCF 服务网页。

由于您使用的是 POST 方法,因此可以在请求正文中发送数据。如果您安装了小提琴手,则可以在作曲器中将方法设置为发布并将地址设置为http://localhost:49701/Exchange2.svc/InsertReading如果这是您的服务地址。在请求正文的正文中,{ memberID:"123" }将 123 更改为要发送到服务的任何值。

或者,您可以在以下地址中发送数据:http://localhost:49701/Exchange2.svc/InsertReading?memberID=123

如果您现在执行请求,它应该返回响应 200 OK。

web.config 文件中指定端点

<service name="MyNamespace.Exchange2">
<endpoint address="Exchange2" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange2Behavior" contract="MyNamespace.IExchange2" />

然后,在 URL 中添加此端点:

http://localhost:49071/Exchange2/DiaInsertReading?memberID=6519548