【问题标题】:Still having issues with my cross domain policy in Silverlight 3.0Silverlight 3.0 中的跨域策略仍然存在问题
【发布时间】:2010-12-11 06:20:41
【问题描述】:

所以我没有运气使用下面列出的两个 xml 文件。它们都存在于我的 IIS 托管 Web 服务的根目录中,位于不同的 Web 服务器(在防火墙后面)。 Web 服务是一个简单的类似 POX 的服务,它返回一个 JSON 字符串。

此外,我正在尝试从本地计算机上的 cassini 运行项目访问此服务(以对其进行测试)。我可以从浏览器查看 JSON,但是当我尝试使用相同的 uri 执行 HTTP GET 时,silverlight 中出现安全错误(显示的错误代码为 4004)

我在这里错过了什么简单的事情?

clientaccesspolicy.xml

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

crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only" /> 
  <allow-access-from domain="*" secure="true" /> 
</cross-domain-policy>

【问题讨论】:

  • 您的意思是 404 吗?响应码 4004 不存在。

标签: silverlight cross-domain


【解决方案1】:

您是否使用 fiddler 之类的工具来查看跨域策略文件的请求指向哪个地址?这通常是我的第一张支票;如果找不到策略文件,我会知道它应该在哪里,如果是,那么我通常需要寻找其他地方。

您的 clientaccesspolicy.xml 与我的参考文件相同。应该没有问题。

【讨论】:

  • 我确实启动了 Fiddler 并注意到我没有访问该服务的权限,所以我启用了匿名访问并且它正在工作!感谢您的明显回答(使用提琴手)!
【解决方案2】:

如果您收到 404 响应代码,唯一的原因可能是服务器找不到您要查找的资源。那么你确定你使用的是正确的网址吗?

【讨论】:

  • 该错误不是 404,而是显示代码 4004 的安全错误(如上所示)。我认为这个安全错误是由于跨域访问,因为在我将服务推送到另一台服务器之前它运行良好。
  • 那么是谁产生了错误? Silverlight 客户端?你有更详细的错误信息吗?
猜你喜欢
  • 2011-09-22
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2010-11-29
相关资源
最近更新 更多