使用 IP 地址时出现 Silverlight 跨域异常



我有一个奇怪的问题,使用主机名浏览我的 Silverlight 5 网站工作得很好,但是当使用 IP 地址时,它会抛出以下异常:http://iforce.co.nz/i/1ohkll5v.32o.png

我已经在我的自承载 WCF Web 服务上的 REST 服务中实现了客户端访问策略返回流(类似于 WcfSvcHost 的跨域异常),并且在使用主机名时它工作得很好。但是,如果我调试该方法,则在具有IP地址的场景中实际上永远不会调用它。

Silverlight 中是否存在一些限制,不允许将 IP 地址用于 WCF?我似乎记得这在前段时间是有效的。

此错误的另一个原因是 Silverlight 也阻止了跨区域访问。因此,在 clinet 浏览器中,您需要将两个地址(具有主机名的地址和具有 IP 地址的地址)添加到 Internet Explorer 中的同一安全区域(本地内联网或受信任的站点)。

虽然这是一个

老问题,它不会帮助你,但它可能会帮助其他人。

我遇到了同样的问题,并浪费了数小时试图找到答案。最后,我的问题是我使用计算机名称引用 WCF 服务。正因为如此(Silverlight 认为我指的是本地计算机),因此 Silverlight 甚至懒得发出客户端策略请求。

因此,只需使用 IP 地址而不是计算机名称引用服务。即使该 IP 地址是本地的。然后与 Fiddler 联系,并注意到 Silverlight 客户端现在将在第一次服务调用之前发出策略请求。

最新更新