2008-09-30 27 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