我正在使用VSTS 2008 + C#+ WCF + .Net 3.5 + Silverlight 3.0。我將Silverlight控件託管在html頁面中,並從VSTS 2008(按F5,然後在VSTS 2008內置的ASP.Net開發Web服務器中運行)進行調試,然後調用另一臺WCF服務(託管在運行IIS 7.0 + Vista的另一臺機器中) 。 WCF服務非常簡單,只需向客戶端返回一個常量字符串即可。WCF跨域策略安全錯誤
當調用從Silverlight的WCF服務,我得到了以下錯誤消息,
,而試圖做出URI「https://LabTest/Test.svc」的請求時發生錯誤。這可能是由於嘗試以跨域方式訪問服務而沒有適當的跨域策略或者不適合SOAP服務的策略。您可能需要聯繫服務的所有者以發佈跨域策略文件,並確保它允許發送與SOAP相關的HTTP頭。使用Web服務代理中的內部類型而不使用InternalsVisibleToAttribute屬性也可能導致此錯誤。有關更多詳細信息,請參閱內部例外。
這是clientaccesspolicy.xml文件,有什麼不對嗎?
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*">
</domain>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"></resource>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
因此,wcf服務是作爲一個網站構建的,託管在IIS中,clientaccesspolicy位於共享網站的根目錄中? – Johannes 2009-08-28 10:56:29
是的。我發佈的是clientaccesspolicy.xml的內容。我在服務器端使用自簽名證書,這很好嗎? – George2 2009-08-28 13:06:01
我聽說跨域WCF https調用的自簽名證書有一些限制,不確定是否是限制? – George2 2009-08-28 13:06:34