2011-07-29 20 views
2

clientaccesspolicy.xml閱讀:Silverlight的到WCF跨域例外,但clientaccesspolicy.xml被成功

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

crossdomain.xml

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy> 
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="*" secure="true" /> 
</cross-domain-policy> 

沒什麼特別的在這裏,它的標準設置數以百萬計的WCF服務用於允許Silverlight客戶端訪問它們。不幸的是,這個設置在我部署到的實時環境中不起作用。用於測試部署的預生產環境與生活(或系統管理員聲明)的設置完全相同,並且所有工作都完美無缺,這就是我非常困惑的原因。

我有一個系統管理員使用HTTPDebuggerPro跟蹤來自Silverlight客戶端的請求,並且它顯示客戶端正在檢索clientaccesspolicy.xmlcrossdomain.xml而沒有問題(HTTP狀態200)。但是,在請求這些文件後,客戶端嘗試撥打該服務的電話並立即收到CrossDomainException

我也嘗試讓系統管理員將WCF服務URL添加到Silverlight客戶端託管的盒子上的Internet Explorer的「允許的站點」列表(根據最後一段http://blogs.msdn.com/b/fiddler/archive/2010/11/22/fiddler-and-silverlight-cross-zone-cross-domain-requests.aspx的最後一句),但是也沒有工作。

HALP!

+0

您是否設法找到解決方案?我面臨等效的問題 – Maximus

回答

0

clientaccesspolicy.xml是否放置在您的域的根目錄中?

+0

這兩個文件位於服務託管爲虛擬應用程序的子目錄中(C:\ inetpub \ wwwroot \ MyServices映射到IIS中的/ MyServices,而crossdomain.xml位於C:\ inetpub \ wwwroot \ MyServices \ crossdomain.xml的)。 –

+0

您可以嘗試將它們移到您的域的根目錄嗎?根據MSDN的說法,它應該放在「託管服務所在域的根目錄,以便配置服務以允許跨域訪問」。 – thomasmartinsen

+0

這兩個.xml文件都位於C:\ inetpub \ wwwroot \和C:\ inetpub \ wwwroot \ MyServices \中。 –