2013-05-06 161 views
1

我有一個包含Silverlight 4項目和WCF類庫項目的解決方案。 並且我在Silverlight項目中添加了對WCF服務的服務參考(WCF未在IIS上發佈)。我嘗試從Silverlight項目調用該服務,但它給了我以下例外:從silverlight消費WCF服務4

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

我試圖通過將以下兩個文件到WCF庫項目來解決這個問題

它具有以下XML

<?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> 

2)的crossdomain.xml包含

1)clientaccesspolicy.xml以下xml

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

然後構建WCF項目並更新silverlight項目中的服務引用但同樣的例外依然存在。

我應該怎麼做來處理這個異常?我應該發佈這項服務嗎?這是否被認爲是自我託管?

+0

手動刪除現有的參考,並添加一個新名稱! – Sajeetharan 2013-05-06 04:59:08

+0

您在服務器上添加了clientaccesspolicy.xml文件的位置? – Stainedart 2013-05-06 17:53:52

回答

0

將您的clientaccesspolicy.xml文件放入iis的根目錄。在例如c:\ inetpub \ wwwroot