Silverlight調用WebService時出現的跨域方式訪問服務

最近在項目中發現Silverlight調用WebService全出現一個跨域方式訪問異常,異常信息如下:

 

“這可能是因爲在沒有適當的跨域策略的情況下試圖以跨域方式訪問服務,或者是策略不適用於 SOAP 服務。您可能需要與服務所有者聯繫以發佈跨域策略文件,確保策略允許發送與 SOAP 相關的 HTTP 頭。請參閱內部異常以瞭解詳細信息。”

 

發現這個問題,一直在虛擬目錄下面的東東,嘗試了各種方法,因爲我的網站下面有很多子網站,所以在這現在部署WebService都是在默認網站下添加的虛擬目錄,或是應用程序。


在GOOGLE的過程發現,大部分是需要加一個XML文件,clientaccesspolicy.xml,文件格式什麼之類的就不在這裏說了。有說要加到webservice所在的目錄下,也有說要加在根目錄下。我嘗試了一下還是不行。我的默認網站和虛擬目錄都不在一個目錄下,我後來也嘗試了將項目COPY到網站的目錄下,還是不行。後到搜到一篇文章說,可能是因爲虛擬目錄的問題,我嘗試新建一個網站,使用了另一個端口。然後將clientaccesspolicy.xml文件放到根目錄下就可以了。然後使用IP加端口的方式訪問,不過因爲服務器的系統是SERVER 2008的,IIS是7.0的,在本機可以打開,但是在外網的機器卻打不開。查了半天,後來發現是操作系統的防火牆過濾了端口的原因,無語,一通設置後,就可以使用IP加端口訪問了。

圖就不上了。麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章