我需要从 Silverlight 4 应用程序向数据库写入一些数据。
我正在使用启用 Silverlight 的 WCF Web 服务。我已经将它发布到 IIS7 并将 ClientAccessPolicy.xml 文件添加到 inetpub/wwwroot(以及其他地方),这样我就可以很好地访问 localhost/ClientAccessPolicy.xml。我还添加了 crossdomain.xml 以防万一。
我还有一个 Silverlight4 客户端应用程序,它访问此服务并通过开发服务器上的 VS2010 运行。
当尝试调用 WebService 中的方法时,我遇到了跨域错误,尽管我已经制定了跨域策略并且 Web 服务工作正常。
当使用 Fidler 时,当客户端应用程序尝试访问 clientaccesspolicy.xml 时,我看到我收到 304 错误
如果我还将客户端应用程序发布到 IIS7(均在端口 80 下),我可以在同一台计算机上使用浏览器毫无问题地运行它。但是当我尝试在另一台机器上访问它时,我再次遇到 crossdamain 错误。
我尝试了所有方法,但我无法在任何地方找到这个问题的答案!请帮忙!!
这是我的 ClientAccessPolicy.xml 的样子:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="http://*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
最佳答案
在阅读您的情况之前和之后,我一直在与这个误导性错误“跨域错误”作斗争,我可以肯定地说 ClientAccessPolicy.xml 配置不是这里的问题,您应该去别处看看。
我会做的几件事
- 在 silverlight 应用程序上检查我的客户端配置和 Web 服务配置(仔细检查端点、行为和最终绑定(bind)协议(protocol))。
- 为您的 wcf 服务启用错误日志记录。
- 确保您将正确的身份验证 token 传递给您的网络服务(为托管 WCF 服务的网络应用程序启用匿名身份验证)。
关于silverlight - 在 silverlight 中获取跨域错误和 clientaccesspolicy 304 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834530/