为自托管WCF服务指定单个地址
本文关键字:单个地址 服务 WCF | 更新日期: 2023-09-27 18:19:18
我编写了一个自托管的WCF服务,它需要在具有多个地址的机器上的一个特定地址上运行。为此,我编写了配置,以便在端点中指定要使用的地址:
<endpoint address="http://A.B.C.D:8000/MyService" binding="webHttpBinding" name="MyServiceEndpoint" behaviorConfiguration="MyServiceBehavior" contract="IMyServiceInterface" />
当我运行这个应用程序并启动服务时,它在所有地址上运行,而不是指定的一个。我尝试将地址移动到baseAddress字段中,并将端点地址留空,但得到了完全相同的结果。我错过了什么?
好了,对于其他碰巧遇到这个问题的人来说,这不是服务配置的问题,而是绑定配置的问题。
webHttpBinding
绑定的hostNameComparisonMode
属性默认为StrongWildcard
。
这意味着http服务忽略主机名并响应任何主机名。作为副作用,它在机器上的所有开放地址上运行。
如果将此值更改为Exact,则它使用在端点或基址中指定的主机名或IP地址。