簡體   English   中英

跨域調用WebService

[英]Calling WebService In Cross Domain

我想使用域B中的C#代碼從域A調用網絡服務。我試圖添加帶有該網絡服務URL的網絡引用,但是它給出了如下錯誤

There was an error downloading 'http://localhost:15666/MailBox/'.
Unable to connect to the remote server
No connection could be made because the target machine actively refused it 127.0.0.1:15666
There was an error downloading 'http://localhost:15666/MailBox/$metadata'.
Unable to connect to the 

由於跨網域,我遇到了很多問題。 有什么解決辦法嗎?

由於您已在localhost上請求了Web服務,因此這不是跨域問題。 我懷疑您需要更新引用以指向另一台計算機上的Web服務。

您的問題(至少是您粘貼的異常)與在另一個域上調用Web服務無關。 它表明您的計算機(本地主機)已關閉端口15666 ,因此您收到actively refused it錯誤消息。 您要么不在該端口上運行Web服務,要么Windows防火牆阻止了該連接,盡管這種情況不太可能發生,因為防火牆通常接受來自本地主機的連接。

您始終可以通過在您感興趣的特定端口上遠程登錄到localhost或使用nmap掃描自己的端口來檢查這種情況。

嗨,最后我得到了我的問題的答案,這不是跨域問題,但是我遇到了問題,因為我沒有為Web服務創建迪斯科文件或WSDL文件,所以我得到了元數據錯誤。我在本地運行Web服務,從那里獲取WSDL文件並為我的網絡服務和繁榮創建新的WSDL文件...問題已解決。感謝您的所有幫助...

您必須創建一個文件(clientaccesspolicy.xml)並將其放入wwwservice的wwwroot目錄或主目錄中。

文件內容應類似於:

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

您可以在使用clientaccesspolicy.xml文件允許跨域訪問中了解有關此內容的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM