2010年12月20日 星期一

WCF RIA Service 部署的問題

原故

今天將寫了幾天的 Silverlight 部署到測試機時,一直發生錯誤。404 resource not found.

使用 Fiddler 來查詢,是在呼叫 RIA Service 時發生錯誤。  http://servername/virtul directory/ClientBin/My-Ria-Service.svc.svc/binary/MyMethod 404。

明明在我的機器可以執行啊!

原故

爬了一下文,知道了原因。RIA Service 實在做的太好了,以致於在開發階段,幾乎不必手動增加必要的參考。而在 http://www.silverlight.net/getstarted/riaservices/ 下載的安裝檔,又直接幫我們註冊到 GAC 中,以致於一些部署需要的 dll 就被遺忘了, 這些設定通常在 Web.config 中會出現。

部署時,主要有兩種做法。一是 bin 另一種是 GAC。

bin: 即 XCopy 做法

在部署ASP.NET 專案中,加以下的參考,並且在Property 中標Copy Local 為 True。

  • System.ServiceModel.dll
  • System.ServiceModel.DomainServices.Hosting.dll
  • System.ServiceModel.DomainServices.Server.dll
  • System.ComponentModel.DataAnnotations.dll

image

GAC

第二種做法,是直接將 Ria Services 註冊到伺服器上。指令如下
msiexec /i RiaServices.msi SERVER=TRUE

可惜,這樣不會將 System.ServiceModel.dll , System.ComponentModel.DataAnnotations.dll 標示為 Copy Local = true。還是要手動將這兩個dll設定一下。

沒有留言:

Share with Facebook