WCF 3.5 服务和多个 http 绑定
Posted
技术标签:
【中文标题】WCF 3.5 服务和多个 http 绑定【英文标题】:WCF 3.5 Service and multiple http bindings 【发布时间】:2011-02-08 05:23:11 【问题描述】:我的 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 - 错误的请求
问候 莫腾
【问题讨论】:
【参考方案1】:前几天我试图将 WCF 服务部署到我的一个 Web 服务器,但遇到了问题。我不断收到以下错误消息:
这个集合已经包含一个带有 http 方案的地址。那里 此集合中的每个方案最多可以是一个地址。参数 名称:项目
问题并没有发生在我的本地计算机上,而是发生在网络服务器上,这使得找出导致它的原因有点困难。它发生在服务器上,因为我的 Web 服务器处于共享托管环境中,在这种情况下,WCF 服务也需要知道主机标头。为此,我在 web.config 中导航到 <system.serviceModel>
并添加了以下内容:
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix=http://MyHostHeader />
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
【讨论】:
以上是关于WCF 3.5 服务和多个 http 绑定的主要内容,如果未能解决你的问题,请参考以下文章
WCF 上的一项服务、多个端点、多个绑定。为啥我无法到达我的端点?