WCF无法使用REST服务找到http的基址

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

在IIS 6.0上尝试访问我的REST WCF服务时,我发现WCF出现以下错误:

找不到与绑定WebHttpBinding的终结点的方案http匹配的基址。注册的基址方案为[]

我的web.config看起来像:

<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。如果有更好的方法,我很乐意倾听。