2012-04-19 74 views
1

WCF庫,而試圖做出URI請求時出現錯誤:消耗在Silverlight 4應用

的 'http://本地主機:8732/Design_Time_Addresses/WCF /服務1 /'。這 可能是由於試圖

訪問的跨域方式服務沒有正確的跨域 政策到位,或

政策是不合適的SOAP服務。您可能需要聯繫 服務

的業主發佈跨域策略文件,並確保它允許SOAP 相關的HTTP標頭

發送。使用網絡中的內部類型 服務代理不使用

使用InternalsVisibleToAttribute屬性也可能導致此錯誤。請參閱內部 異常更多

詳細信息。當結果從WCF

我通過控制檯,網站消耗的這個WCF返回

錯誤出現,贏得形式和它工作正常

我用2個XML文件中的WCF庫:

  1. clientaccesspolicy.xml
  2. 的crossdomain.xml
+0

注意:如果網站是您自己的網站,您只需要'clientaccesspolicy.xml' for Silverlight。 'crossdomain.xml'允許與舊網站兼容,並且不提供儘可能多的選項。 – 2012-04-20 08:44:10

回答

1

它曾經讓我的大腦也受到傷害。

我想通了,我用我需要這個文件:

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="SOAPAction"> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

名爲clientaccesspolicy.xml

訣竅是必須是在你的Web服務器的根目錄。這就是說你需要能夠瀏覽文件。在你的情況下位於:

http://localhost:8732/clientaccesspolicy.xml

如果無法看到文件Silverlight將總是抱怨男孩它抱怨時,它可以!

我應該指出,我的政策文件不是限制性的,所以明智地使用它。

0

哦,那個問題。除了crossdomain外,你不能從VS2010運行調試器,這是我從本地主機URL收集的。嘗試在WCF所在的域或服務器上發佈Silverlight應用程序。例如,如果您的網絡服務在http://10.xx.xx.xx/sites/myWCF上,請在http://10.xx.xx.xx/sites/MySilverlightApp上發佈您的silverlight應用程序。你的調試器會以http://localhost:somePort的速度運行,即使使用跨域策略文件,這也肯定會給你帶來問題。除此之外,請確保您爲web.service配置文件是正確的。確保所有接口都具有端點綁定,並且主服務位置上有一個主機(聽起來很明顯,但是是常見錯誤)。