WCF 3.5服务和多个http绑定

时间:2010-04-15 04:43:05

标签: wcf wcf-binding

我无法让我的WCF服务使用多个http绑定。

在IIS 7中,我必须绑定http:/ service和http:/service.test 80号港口。

在我的web.config我添加了baseAddressPrefixFilters,但我无法添加 不止一个

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://service"/>
        <add prefix="http://service.test"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

这给出了几乎相同的错误

  

此集合已包含方案http的地址。那里   此集合中每个方案最多只能有一个地址。

好像根本没有指定任何文件管理器(此集合已包含 地址与方案http。每个方案最多只能有一个地址 这个系列。 参数名称:item)

如果我只添加一个过滤器,那么该服务可以正常工作,但只能响应 添加过滤器地址。

我也尝试过指定多个端点(只有一个过滤器):

<endpoint address="http://service.test" binding="basicHttpBinding" bindingConfiguration="" contract="IService" />
<endpoint address="http://service" binding="basicHttpBinding" bindingConfiguration="" contract="IService" /> 

然后,仍然只有过滤器中指定的地址有效,另一个 返回此错误:

  

应用程序“ISPSERVICE”HTTP错误400.0中的服务器错误    - 错误请求

此致 的Morten

1 个答案:

答案 0 :(得分:0)

前几天我试图将WCF服务部署到我的一个Web服务器上并遇到问题。我不断收到以下错误消息:

  

此集合已包含方案http的地址。那里   在此collection.Parameter中,每个方案最多只能有一个地址   名称:项目

问题没有发生在我的本地计算机上,而是在网络服务器上发生,使得弄清楚导致它的原因有点困难。它发生在服务器上,因为我的Web服务器位于共享托管环境中,在这种情况下,WCF服务还需要知道主机头。为此,我在web.config中导航到<system.serviceModel>并添加了以下内容:

<serviceHostingEnvironment>
<baseAddressPrefixFilters>    
    <add prefix=http://MyHostHeader />
</baseAddressPrefixFilters>
</serviceHostingEnvironment>