2011-05-09 69 views
1

我有一個託管在IIS上的.asmx Web服務。我接受了服務引用,並從我的Silverlight應用程序調用此Web服務。但是我收到一個通訊例外如下。從Silverlight調用.asmx服務時發生通信異常

錯誤,而試圖讓 到URI 'http://test.bookmyshow.com/services/wsDebtorTrans.asmx' 請求時發生。 這可能是由於嘗試以 以跨域方式訪問服務 而沒有適當的跨域策略 或者是不適合SOAP服務的 策略。您可能需要 聯繫 服務的所有者以發佈跨域 策略文件並確保允許發送與SOAP相關的HTTP標頭 。 此錯誤也可能是由於在Web服務 代理中使用 內部類型而不使用 InternalsVisibleToAttribute屬性造成的。 請參閱 的內部例外更多詳情。

我已將所需的策略文件(clientaccesspolicy.xml和crossdomain.xml)添加到我的Web服務中。以下是我clientaccesspolicy.xml的內容和進crossdomain.xml

crossdomain.xmlclientaccesspolicy

我想從我的瀏覽器和XML文件訪問上述兩個文件在瀏覽器中正確顯示。我已經使用basicHttpBinding。我在網上看過很多教程,並嘗試過它們,但仍面臨同樣的問題。我在這裏錯過了什麼嗎?請幫我解決這個問題。

回答

0

只是爲了澄清,您只需要CrossDomain.xml文件或ClientAccessPolicy.xml文件。你不需要兩個。另外,你把這些文件放在哪裏?你把它放在Services文件夾中,還是放在服務器的根目錄下?例如,http://test.bookmyshow.com/ClientAccessPolicy.xml而不是http://test.bookmyshow.com/Services/ClientAccessPolicy.xml。該文件應放在應用程序的根目錄下,而不是Services文件夾。

+0

謝謝您的回覆。我已將該文件放在services文件夾中。這是正確的位置嗎?出於好奇,如果我在我的Web服務中同時包含了crossdomain.xml和clientaccesspolicy.xml文件,是否有任何傷害 – Madhur2479 2011-05-10 05:46:11

+0

更新了我的答案。該文件應位於應用程序的根目錄下,而不是服務文件夾。兩者都沒有技術上的危害 - Silverlight會先檢查一個。但是這意味着您必須保持兩個文件都是最新的,並且這會造成一個可能的安全漏洞(如果您的特定應用程序在意這一點)。 – 2011-05-10 14:13:56

相關問題