Silverlight 應用 WCF RIA Services 在 IIS6 部署問題總結

來源:互聯網
上載者:User

WCF RIA Services 部署在IIS6很簡單,但是也會出現一些問題

我們的應用是Silverlight 4 Business Application,應用了WCF RIA Service, .net framework 4 環境下,所以遇到了一些問題

主要涉及的環境是Windows Server 2003 R2/企業版,未安裝Visual Studio 2010環境時的布署。

安裝.net framework 4,Silverlight sdk 4,Silverlight tools等軟體包後,如果你的WCF RIA應用還不能正常運行,則要檢查以下問題

 

1. asp.net的版本要選擇為4.0.30319

解決:在IIS6管理器中,選擇Web應用的屬性,asp.net標籤頁中,Asp.net版本選為4.0.30319,以為預設的版本應該是2.0.50727.

現象:如果配置不對,出錯為web.config配置項錯誤。

 

2. xap的Mine類型問題。

現象:如果配置不對,出錯為Silverlight內容不出現,無論是aspx的測試頁,還是html的測試頁。

原因:xap在IIS6中要註冊一個MIME類型,註冊為application/x-silverlight-app 或者 application/octet-stream 都可以下載

操作:在IIS6管理器中,在機器節點,就是網站節點的父節點,比如,你的主機名稱是MyServer,則節點名就是這個MyServer(local computer),點屬性,選擇MINE 類型,進行註冊。

 

3. 允許ASP.NET 4.0.30319

現象:aspx的測試頁無法運行,not found錯誤,但是html的測試頁可以正常運行。

原因:如果剛剛安裝的.net framework 4.0環境,IIS6預設為禁止ASP.NET 4.0.30319的指令碼運行。

解決:在IIS6管理器中,選擇主機名稱節點的子節點中的Web服務擴充(這個節點同“Web Site”同級,同級的有Application pools,Web Sites,Web Service Extension),觀察ASP.NET 4.0.30319項前表徵圖應該有綠地白色對鉤,Status應該是Allowed。如果不對,右鍵選擇Allow,設定完成。

 

4. svc 無法訪問問題

現象:silverlight運行正常,但是調用WCF RIA Service部分出現異常,彈出錯誤提示。如登入或建立新使用者時。

類似這樣的silverlight異常框

Load operation failed for query 'GetUser'. 遠程伺服器返回了錯誤: NotFound。

   位於 System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error)
   位於 System.ServiceModel.DomainServices.Client.LoadOperation.Complete(Exception error)
   位於 System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult)
   位於 System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass1b.<Load>b__17(Object )

 

原因:svc服務沒有建立

解決:將Web應用目錄中,目錄安全性標籤頁中“認證和存取控制”彈出對話方塊中,僅選擇“Enabled anonymous access ”使能匿名訪問,而去掉整合認證。就是說僅有匿名訪問。

**設定完成,最好將整個IIS 服務重新啟動,這樣不至於浪費時間。

 

5. 其他解決 

如果IIS6在.net framework 之後安裝,可能需要將一些副檔名註冊到IIS擴充中,可以使用下面第一個命令補救。完成後,在

IIS管理器中Web Site Properties, under Home Directory/Configuration, could you check if extension .svc is mapped to aspnet_isapi.dll

run "c:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i"

run "c:\windows\Microsoft.NET\Framework\v4.0.30319\ServiceModelReg.exe -i"

 

有人說,將以下檔案複製到bin目錄下,我們測試結果可以不放

system.servicemodel.domainservices.entityframework

system.servicemodel.domainservices.hosting

system.servicemodel.domainservices.server

的copy local = true。

 

有人說,估計是IIS重寫URL機制導致的,升級到IIS7應該能解決你的問題。

 

按照以上1~5,在IIS6中可以解決問題,不必嘗試去升級IIS7,因為在IIS7的部署中,仍然會有問題出現。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.