C# 跨域调用WebService

C# 跨域调用WebService,c#,web-services,web,C#,Web Services,Web,我想用域B中的C#代码从域A调用webservice。我曾尝试用该web服务的URL添加web引用,但它给出了如下错误 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:

我想用域B中的C#代码从域A调用webservice。我曾尝试用该web服务的URL添加web引用,但它给出了如下错误

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 

我有这么多的问题,因为跨域。有什么解决方案吗?

因为您已经在本地主机上请求了web服务,所以这不是跨域问题。我怀疑您需要更新引用以指向另一台计算机上的web服务。

您必须创建一个文件(clientaccesspolicy.xml)并将其放入wwwroot目录或web服务的主目录

文件的内容应如下所示:

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

您的问题(至少是您粘贴的异常)与在另一个域上调用web服务无关。它表示您的计算机(本地主机)的端口
15666
已关闭,因此您会收到
主动拒绝它的
错误消息。您可能没有在该端口上运行web服务,或者您的windows防火墙正在阻止连接,尽管这不太可能,因为防火墙通常接受来自本地主机的连接


您可以通过在您感兴趣的特定端口上远程登录到localhost或使用nmap扫描您自己的端口来检查这类问题。

嗨,最后我得到了问题的答案,这不是跨域的问题,但我遇到了问题,因为我没有为我的WEB服务创建disco文件或WSDL文件,所以元数据出现错误。我在本地运行我的WEB服务,从那里获取WSDL文件,并为我的WEB服务创建新的WSDL文件,然后。。。问题已解决。感谢您的帮助…

我认为C#不受跨域请求的限制。实际上,这应该是你处理跨域请求的方式,通过将请求发送到后端获取信息。实际上,我的Webservice和调用该Webservice的c#代码位于不同的域中,因此我认为这是因为不同的域或某些权限问题。我可以从同一台机器调用Webservice,没有任何问题是的,但您的错误消息显式引用了本地计算机。我想当你执行生成异常的代码时,你没有指向另一台机器。我想你是对的,可能是我键入了错误的URL,我会在那个方向上尝试。我尝试这个clientaccesspolicy.xml文件。但我想这只适用于silverlight,在我的情况下,它不会提供任何帮助。无论如何,谢谢你