2009-12-21 55 views
0

所以,我以前發佈關於我的工作WCF服務從我的本地機器到開發服務器的麻煩。問題是,當移動它的所有引用是通過機器名而不是IP。由於我沒有在域上訪問它,我看不到機器名稱,也無法訪問參考。這是我以前的帖子(.NET WCF service references use server name rather than IP address causing issues when consuming)。WCF(IIS中的託管服務) - WCF而不是IP自動獲取機器名稱?

我找到了一個解決方案,但想確保這是我的問題的正確解決方案。並且詢問是否有其他人有任何其他意見?解決方案是更改IIS站點綁定。我在(http://blogs.msdn.com/wenlong/archive/2007/08/02/how-to-change-hostname-in-wsdl-of-an-iis-hosted-service.aspx)找到了解決方案。唯一的問題是,我可能必須爲每個站點執行此操作,因爲我使用的應用程序未託管,並且是在每個站點上安裝的基於Web的解決方案。所以我可能將不得不在每個站點的構建中包含一個腳本。

我會認爲我可以在.config文件中進行此更改?

+0

我想在此問題上也參考一個類似的帖子... http://stackoverflow.com/questions/1220904/how-to-bind-wcf-service-to-ip-address/1941934 #1941934 – dwhittenburg 2009-12-21 19:14:05

+0

我無法將IP添加爲主機頭,導致badrequest無效主機名。我找到了一個使用ServiceHost Factory屬性和自描述服務的解決方案。這是一個很好的基於代碼的解決方案,更多這裏如果感興趣:http://stackoverflow.com/questions/6863464/wcf-is-using-the-computer-name-instead-of-the-ip-address-and-cannot-待解決 – baileyswalk 2011-08-02 11:58:13

回答

0

處理此問題的正確方法是在IIS中爲Web站點實例設置顯式主機頭。現在,假設您只有一個應用於網站實例的主機頭應該是您需要的全部。但是,如果您配置了多個主機頭,則還需要明確告訴WCF通過哪個主機公開自己。這是通過在元素下的the configuration element將服務綁定到該特定域來完成的。