【问题标题】:Silverlight 3/WCF Communication over SSL IssueSilverlight 3/WCF 通过 SSL 进行通信问题
【发布时间】:2010-09-01 00:22:42
【问题描述】:
我有一个 WCF over SSL 服务,可以正常工作。我可以将对此服务的引用添加到我的 Silverlight 项目中。一切都托管在 IIS7 中。当我的应用程序运行时,我收到以下错误
尝试向 URI“https://wikittybam/BurgerCounter.svc”发出请求时出错。这可能是由于在没有适当的跨域策略或不适合 SOAP 服务的策略的情况下尝试以跨域方式访问服务。您可能需要联系服务的所有者以发布跨域策略文件并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于在 Web 服务代理中使用内部类型而不使用 InternalsVisibleToAttribute 属性造成的。有关详细信息,请参阅内部异常。
现在我已经在这里凝视了好几个小时了
1) 是的,我在正确的位置添加了客户端访问策略,并且设置正确。我已经使用了 Fiddler 并验证了该政策正在被取消。
2)我尝试使用跨域策略以及相同的结果。
3) WCF 服务本身在工作,我可以使用 WCFTestClient 连接到它并提取我想要的数据。
在这一点上的任何建议将不胜感激。如果您想了解其他信息,请告诉我。
【问题讨论】:
标签:
c#
wcf
.net-3.5
ssl
silverlight-3.0
【解决方案1】:
我终于能够解决这个问题。问题出在客户端访问策略中。我把政策放在了错误的位置。
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="http://*"/>
<domain uri="https://*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
一些笔记
- 我将 Visual Studio 2010 设置为将本地 IIS Web 服务器用于服务和 Silverlight UI。我仍然收到客户端访问策略无法访问的警告,但此时一切似乎都正常。
【解决方案2】:
我怀疑您有一个跨架构 url 场景,其中您的 Silverlight 应用程序是 http 并尝试通过 https 访问资源,而您的 clientaccesspolicy 中未启用此功能。 clientaccesspolicy 文件中是否启用了 http-to-https 跨模式访问?欲了解更多信息,请查看 msdn 上的 URL Access Restrictions in Silverlight。
【讨论】:
-
我已经浏览了这个文档,是的,我的 http-to-http 跨模式访问应该被启用。根据文档,我配置了我的策略,以便 我刚刚看过表明只有 HTTPS Silverlight 应用程序可以连接到 HTTPS WCF 服务的视频。它看起来像一个较旧的视频,根据上面链接中的文档,看起来 HTTP-HTTPS 应该没有问题。