原故
今天將寫了幾天的 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
GAC
第二種做法,是直接將 Ria Services 註冊到伺服器上。指令如下
msiexec /i RiaServices.msi SERVER=TRUE
可惜,這樣不會將 System.ServiceModel.dll , System.ComponentModel.DataAnnotations.dll 標示為 Copy Local = true。還是要手動將這兩個dll設定一下。
沒有留言:
張貼留言