【发布时间】:2010-11-23 15:30:23
【问题描述】:
我正在使用 VSTS 2008 + C# + WCF + .Net 3.5 + Silverlight 3.0。我在 html 页面中托管 Silverlight 控件并从 VSTS 2008 调试它(按 F5,然后在 VSTS 2008 内置 ASP.Net 开发 Web 服务器中运行),然后调用另一个 WCF 服务(托管在另一台运行 IIS 7.0 + Vista 的机器上) . WCF服务很简单,就是返回一个常量字符串给客户端。
从 Silverlight 调用 WCF 服务时,我收到以下错误消息,
尝试向 URI“https://LabTest/Test.svc”发出请求时出错。这可能是由于在没有适当的跨域策略或不适合 SOAP 服务的策略的情况下尝试以跨域方式访问服务。您可能需要联系服务的所有者以发布跨域策略文件并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于在 Web 服务代理中使用内部类型而不使用 InternalsVisibleToAttribute 属性造成的。有关详细信息,请参阅内部异常。
这里是clientaccesspolicy.xml文件,有什么问题吗?
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*">
</domain>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"></resource>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
【问题讨论】:
-
所以 wcf 服务被构建为一个网站并托管在 IIS 中,并且 clientaccesspolicy 位于共享站点的根目录中?
-
是的。我发布的是clientaccesspolicy.xml 的内容。我在服务器端使用自签名证书,可以吗?
-
听说跨域WCF https调用的自签名证书有一些限制,不知道是不是限制?
标签: c# .net wcf silverlight visual-studio-2008