2008-09-30 29 views
3

我们在展示某些问题的Windows 2003服务器上部署了WCF服务。该配置使用wsHttpBinding,我们正在指定IP地址。这些服务由Windows服务托管。WCF未绑定到正确的IP地址

当我们启动服务时,大多数时间它抓住了错误的IP地址。几次它绑定到正确的地址只是放弃该绑定,并转到另一个地址(有2)绑定到网卡处理一段时间后。

它目前使用的是端口80(我们已经通过httpcfg将IIS配置为仅绑定到一个地址),尽管我们已经使用不同的端口尝试了它,结果相同。

当Windows服务开始托管WCF服务时,属性显示它正在绑定到正确的地址;但是,tcpview显示它确实正在侦听不正确的地址。

以下是设置tehe baseAddress的配置部分。这被绑定到一个最终被.4而不是0.9

<services> 
    <service name="Service.MyService" 
      behaviorConfiguration="serviceBehavior"> 
     <host> 
      <baseAddresses> 
       <add baseAddress="http://xx.xx.xx.9:80/" /> 
      </baseAddresses> 
     </host> 
     <endpoint address="MyService" 
        binding="wsHttpBinding" 
        bindingConfiguration="WSHttpBinding_IMyService" 
        contract="Service.IMyService" /> 
     <endpoint address="mex" 
        binding="mexHttpBinding" 
        contract="IMetadataExchange" /> 
    </service> 
</services> 
  • 是否有需要设置一些其他的配置?
  • 有没有一种工具可以帮助追踪哪些地方被绑定到错误的地址?

回答

0

的更多信息:我从NIC取出xx.xx.xx.4 IP地址和完全关闭IIS。现在当我尝试启动服务时,它会失败,我在系统事件日志中找到它。

Description: 
Unable to bind to the underlying transport for xx.xx.xx.4:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number. 

我的配置文件仍然有xx.xx.xx.9 baseAddress设置。

0

还有一条信息。如果我们将绑定更改为使用NetTcp而不是WsHttp,它将绑定到端口80上的正确地址。将其更改回WsHttp会返回到不正确的IP地址。

1

这个问题似乎与国际空间站有关。下面是从http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ddf72ae0-aa1e-48c9-88d1-10bae1e87e4f.mspx?mfr=true

这个错误会记录到时HTTP.sys在解析IP包含列表,发现所有在列表中的条目是无效的事件日志你得到的错误描述。如果发生这种情况,正如表11.15中的说明所述,HTTP.sys侦听所有IP地址。

您还可以检查以下螺纹其中谈到了一个类似的问题 http://www.webhostingtalk.com/showthread.php?t=534174

希望这有助于。

+0

正如原始问题所述,我们已经使用httpcfg,如链接中所述,告诉IIS仅在xx.xx.xx.4地址上进行监听。 – palehorse 2008-10-01 14:01:48