我正在尝试使用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的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会抛出安全异常而不指定错误。有任何想法如何解决这个问题?
答案 0 :(得分: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! HTH