WCF无法使用REST服务找到http的基址
在IIS 6.0上尝试访问我的REST WCF服务时,我发现WCF出现以下错误: 找不到与绑定WebHttpBinding的终结点的方案http匹配的基址。注册的基址方案为[] 我的web.config看起来像:WCF无法使用REST服务找到http的基址,wcf,iis,rest,Wcf,Iis,Rest,在IIS 6.0上尝试访问我的REST WCF服务时,我发现WCF出现以下错误: 找不到与绑定WebHttpBinding的终结点的方案http匹配的基址。注册的基址方案为[] 我的web.config看起来像: <system.serviceModel> <serviceHostingEnvironment> <baseAddressPrefixFilters> <!--LOCAL--> <add prefix="htt
<system.serviceModel>
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<!--LOCAL-->
<add prefix="http://localhost/CustomTrackingService/CustomTrackingService.svc"/>
<!--TEST-->
<!--<add prefix="http://mytestserver/CustomTrackingService/CustomTrackingService.svc"/>-->
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<services>
<service name="MyService.CustomTrackingService">
<endpoint
address="MyAction"
binding="webHttpBinding"
contract="MyContract.ICustomTrackingService"
behaviorConfiguration="RestBehavior" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
这在我的测试服务器上可以很好地工作,如果我让Casini获取它,在本地也可以很好地工作(将基址前缀localhost/CustomTrackingService更改为localhost:1234/)。我不记得是什么原因导致了这种情况,我的谷歌fu也没有产生有用的结果。有什么想法吗?为什么要在中使用基址前缀+不相关的值endpoint@address如果您在IIS中托管?那么问题似乎是在本地我试图使用一个没有定义基址的相对地址。这在我的测试服务器上起作用,因为测试服务器错误地定义了多个主机头,这似乎转化为WCF中定义的多个基址,这是一个否。我最初在测试服务器上使用,因为我得到了一个关于http多个基址的错误,在没有意识到真正问题的情况下,我过滤掉了我想用的那个。Thsi无法在本地工作,因为我没有定义主机头,因此筛选器未提供任何内容,并且由于未指定基址,因此相对寻址尝试失败
我将做更多的实验,看看针对我的情况最好的设置是什么,但是检查IIS中的主机头肯定会有所帮助。另外,这对理解真正发生的事情有很大帮助。最终结果是将我的URL读作REST服务的URL。如果有更好的方法,我很乐意倾听。