【问题标题】:CrossDomain error跨域错误
【发布时间】:2011-02-22 09:01:10
【问题描述】:

我在 IIS 中托管了我的 Silverlight 应用程序,现在当我尝试访问该应用程序时出现以下错误

System.ServiceModel.CommunicationException:发生错误时 试图向 URI 发出请求这可能是由于试图 在没有适当跨域的情况下以跨域方式访问服务 政策到位,或政策不适合 SOAP 服务.....

我已经在 wwwroot 以及虚拟目录中正确放置了跨域策略。

<?xml version="1.0"?>

<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

【问题讨论】:

  • 安装 Fiddler,您将能够看到您的机器和服务器之间的流量。
  • 你好,它返回一个代码 200 用于跨域和客户端访问策略!

标签: silverlight cross-domain


【解决方案1】:

如果您不需要安全策略与 Flash 兼容,请尝试使用 Silverlight 特定的 clientaccesspolicy.xml 并查看您是否收到相同的错误。如果您仍然遇到问题,请查看 Tim Heuer's blog post 以了解如何解决文件位置错误

<?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 include-subpaths="true" path="/" />
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

【讨论】:

  • 我做到了,同样的问题!我使用了 Silverlight Spy,问题似乎出在跨域文件中。告诉我它们应该放在哪里?我放在 wwwroot 文件夹中。实际上我在本地 IIS 中做了同样的事情,并且每件事都运行良好,当我将它移到我的服务器时,它抛出了这个错误!
  • 策略文件用于授予对您的 SL 客户端所需的任何 Web 服务的访问权限,因此该文件需要放在 Web 服务的根 Web 目录中。
  • 我已经把它放在那里了!似乎无法掌握错误。它在本地 IIS 中运行良好。
  • 我在我对 Tim Heuer 博客文章的回答中添加了一个链接,该链接是关于解决此问题的。查看他的建议,看看它们是否适合您的情况。
  • 我检查过,一切似乎都是它提到的方式。我得到了两个 xml 的 HTTP 200!
猜你喜欢
  • 2016-11-17
  • 2013-11-21
  • 2016-07-27
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 2019-01-09
  • 2016-11-04
相关资源
最近更新 更多