2009-12-02 166 views
0

我使用一個Silverlight與WCF,當我用名.web項目,然後它運行,但使用的銀色光芒項目運行以下異常時拋出:試圖使發生跨域問題

錯誤對URI'http://localhost:9000/Services/BLWCFSvrc.svc'的請求。這可能是由於嘗試以跨域方式訪問服務而沒有適當的跨域策略或者不適合SOAP服務的策略。您可能需要聯繫服務的所有者以發佈跨域策略文件,並確保它允許發送與SOAP相關的HTTP頭。使用Web服務代理中的內部類型而不使用InternalsVisibleToAttribute屬性也可能導致此錯誤。有關更多詳細信息,請參閱內部例外。

我想使用Silverlight項目調試我的代碼

在此先感謝

回答

0

只是複製clientaccesspolicy.xml文件(一個例子採取look at this post;你甚至可以用這個樣品)到你的web服務器的根目錄(如:C:\的Inetpub \ wwwroot文件\)。

這應該有所幫助。

0

我覺得你的問題是不同的,僅僅具有clientaccesspolicy.xml,它運行在Web項目中,這一事實意味着你正在提供政策,如果你有這些添加爲單獨的文件在Web項目中那麼他們不會當你單獨運行SL3應用程序時會被部署,但是我確定你已經明白了這一點,並且你正在通過WCF使用webHttp綁定(REST風格)提供策略,如果沒有的話,你應該這樣做。

我認爲問題在於,當您運行webproject時,它將生成到本地IIS並從那裏執行,IIS將允許SL3應用程序與端口/地址不同,該端口/地址與網站託管的端口/地址不同

本機運行SL3應用程序時,VS2008會自動生成一個測試html站點,並以一些默認設置託管它,並使用VS2008內置託管服務,該服務不允許與地址/端口通信的主機地址。 (儘管Silverlight是一個客戶端庫,VS2008可以做到這一點)

所以如果你想本機運行Silverlight應用程序,這意味着實際執行XAP,你可以將它部署到IIS,並配置IIS來傳遞XAP文件,或者只是安裝它並運行它的瀏覽器,並讓它從IIS更新的部署版本

+0

您可能還會發現,Web項目可以在VS2008中使用其內置的託管服務執行,這可能會失敗,我有這個問題之前,我的解決方案是從IIS打開該網站並從那裏建立+運行,這是最好的 – Neil 2009-12-03 22:18:21