3

我需要从 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 下),我可以在同一台机器上使用浏览器运行它,没有问题。但是当我尝试在另一台机器上访问它时,我再次得到一个 crossdaomain 错误。

我尝试了一切,但在任何地方都找不到这个问题的答案!请帮忙!!

这就是我的 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>
4

1 回答 1

0

在阅读您的情况之前和之后,我一直在努力解决这个误导性错误“跨域错误”,我可以确定 ClientAccessPolicy.xml 配置不是这里的问题,您应该在其他地方查看。

我会做的几件事

  1. 在 silverlight 应用程序上检查我的客户端配置和 Web 服务配置(仔细检查端点、行为和最终绑定协议)。
  2. 为您的 wcf 服务启用错误日志记录。
  3. 确保将正确的身份验证令牌传递给 Web 服务(为托管 WCF 服务的 Web 应用程序启用匿名身份验证)。
于 2012-10-04T12:00:11.283 回答