摘要:讀者問題:請問SL2第15章,利用WCF存取遠端主機資源問題
問題:
我依據SL2_15-5.1.範例在VS2008開發環境測試OK!,但"部署到IIS環境"(我使用VS2008的"建 置_發行網站"功能,出現訊息為 "嘗試向 URI http://localhost:nnnn/CH15/WCF_TemperatureService.svc進行要求時發生錯誤...". 問題: 請問老師,佈署到正式IIS server,在VS2008先要做那些調整? 請問要看SL2那一章節?
解答:
由上圖的錯誤訊息我們可以知道,原本在 Visual Studio 2008 整合式開發環境中,可以藉由 Visual Studio 2008 所提供的虛擬 Web 伺服器順利執行的 WCF 服務,並沒有隨著「發行網站」而自動更新其相對應的 URI,欲解決此問題,可以於發行網站之後,先行在瀏覽器的網址欄位中,鍵入如下的指令來確認 WCF 已經成功部屬到 IIS 上:
1.
http://<;電腦名稱>/<
wcf
>
如下所示即是在名稱為
limingch的電腦上,查詢名稱為
WCF_TemperatureService.svc的 WCF 服務:
接著請如下圖所示,重新設定服務參考,以便將原本指向虛擬 Web 伺服器的設定,改為指到 IIS:
然後重新編譯專案,最後再將網站發行一次。
附註:
在實務上,我們會將 WCF 服務儲存在另外一個專案中,並於部署到 IIS 時,另外建立一個「應用程式」並 賦予其別名(如下圖所示)。這麼一來,在開發 Silverlight 應用程式時,就可以直接引用位於 IIS 上的服務參考,於部署裝載(Host) Silverlight .xap 的網站時,就不需要再次進行更新服務參考。請特別注意,如果是跨網域存取 WCF 這類的服務,請記得在 IIS 站台的根目錄建立一個跨網域原則檔。
章立民研究室 2009/09/06