4

我正在尝试使用 Web 客户端(或 webRequest.Create,结果相同)调用休息服务。

Silverlight 应用程序正在我使用 url localhost:13451 的机器上开发

使用https://contoso.com/Services/Service.csv托管休息服务

获取实体列表的方法具有如下定义的 url 结构:

https://contoso.com/Services/Service.csv/username@password/?StartDate=10-11-2012

https://contoso.com/的 crossdomain.xml 文件可通过https://contoso.com/crossdomain.xml访问

并包含这样的内容:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

因此,当我尝试发出请求时,Silverlight 会引发安全异常,但未指定问题所在。任何想法如何解决这个问题?

4

1 回答 1

0

当您需要将 SL 服务引用添加到服务时,请将其放在您站点的根目录中:clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*"  http-methods="*" >
        <domain uri="http://*"/>
        <domain uri="https://*"/> 
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

和 crossdomain.xml 包含:

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

并确保它可以通过浏览器通过 http 或 https 访问!高温高压

于 2013-01-02T09:26:02.517 回答