2010-09-01 95 views
0

我有一個WCF over SSL服務,沒有問題。我能夠將此服務的引用添加到我的Silverlight項目中。一切都在IIS7中進行託管。當我的應用運行時出現以下錯誤Silverlight 3/WCF通過SSL通信問題

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

我已經Goggling幾個小時在這裏和 1)是的,我在正確的位置添加一個clientaccesspolicy,這是正確設置。我已經使用了Fiddler並驗證了該政策正在被撤銷。 2)我曾嘗試使用跨域策略以及相同的結果。 3)WCF服務本身工作,我可以通過WCFTestClient連接到它並提取我想要的數據。

任何建議在這一點上將不勝感激。如果您想要其他信息,請告訴我。

回答

1

我終於能夠解決這個問題。該問題出現在客戶端訪問策略中。我在錯誤的地點制定了政策。

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

的一些注意事項

  1. 我安裝Visual Studio 2010中使用本地IIS Web服務器同時爲服務和Silverlight的用戶界面。我仍然遇到客戶端訪問策略無法訪問的警告,但是現在一切似乎都在進行中。
0

我懷疑你有一個跨模式的URL場景,其中你的Silverlight應用程序是http,並且試圖通過https訪問資源,並且這在你的clientaccesspolicy中沒有啓用。是否在clientaccesspolicy文件中啓用了http-to-https交叉模式訪問?欲瞭解更多信息,請看msdn上的URL Access Restrictions in Silverlight

+0

我已經通過這個文檔,是的,我的http-to-http跨架構訪問應該啓用。按照該文件我已經配置我的策略,使得 <允許-從http-方法= 「*」> <域URI = 「HTTP:// *」/> 我只觀看了所指示的視頻只有HTTPS Silverlight應用程序可以連接到HTTPS WCF服務。它看起來像一個較舊的視頻,並根據上面鏈接中的文檔,它看起來像HTTP-HTTPS應該沒問題。 – 2010-09-01 04:50:45