在我們已經創建成功一個WCF服務后,通過本機localhost訪問和測試均沒有任何問題。但是寄宿在IIS/其他平台下時便會出現以下的錯誤信息
1、使用WCF Test Client錯誤
2、通過C#引用服務引用錯誤
這是為什么呢?在本機的情況下一切正常,但是只要部署在服務端便報錯。經查詢相關技術文檔發現了問題所在。原因為:
在本機環境測試,使用url地址為localhost,如http://localhost:8888/Service訪問沒有問題。
然后,將服務部署在服務器以后,將localhost更換為服務器IP地址在瀏覽器中訪問依然沒有問題。但由於xml配置其實還是localhost,服務需要調用wsdl文件的時候訪問路徑依然為http://localhost:8888/Service?wsdl而不是http://192.168.1.100:8888/Service?wsdl。所以,部署在服務端后需要調用wsdl時系統便找不到相應的xml文件,肯定會報錯。如:
解決辦法為:
將WCF部署在服務端時需要將配置文件中的訪問地址更改為服務端的ip地址:
PS:更改baseAddress地址,同時會更改訪問地址和wsdl地址。
更改完成以后,我們再次通過瀏覽器訪問WCF服務。
這時全部訪問默認url路徑便修改正確了,不會再報上述的錯誤了。
另外:如果在調用WCF的方法時,提示“調用方未由服務器進行身份驗證“,請看《關於WCF報錯之調用方未由服務器進行身份驗證》