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

时间:2009-08-17 20:30:50

标签: wcf iis rest

我试图在IIS 6.0上点击我的REST WCF服务时看到来自WCF的以下错误:

找不到与绑定WebHttpBinding的端点的scheme 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 /),本地工作正常。我不记得是什么导致这种情况发生,我的Google-fu没有产生有用的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

所以看起来问题是本地我试图使用没有定义基址的相对地址。这在我的测试服务器上运行,因为测试服务器错误地定义了多个主机头,这似乎转换为WCF中定义的多个基地址,这是禁忌。我最初在测试服务器上使用了因为我收到关于http的多个基地址的错误,并且没有意识到真正的问题,我过滤掉了我想要使用的那个。 Thsi将无法在本地工作,因为我没有定义主机头,因此过滤器没有提供任何内容,相对寻址尝试失败,因为没有指定基址。

我要做更多的实验,看看我的情况最好的设置是什么,但检查IIS中的主机头肯定有帮助。此外,this link对理解实际情况有很大帮助。

答案 1 :(得分:0)

如果您在IIS中托管,为什么在端点@地址中使用基地址前缀+不相关的值?