silverlight-4.0 - Silverlight 无法与 HTTPS Web 服务对话?

标签 silverlight-4.0 https securityexception clientaccesspolicy.xml

我有一个与 HTTPS 网络服务对话的 Silverlight 应用。

在大多数机器上它工作正常,但是,在某些机器上它总是失败。

在失败的机器上,我在向 HTTPS Web 服务发出 WebClient 请求时收到 SecurityException。 SecurityException 本身并没有给我任何关于它为什么真正失败的线索:

WebClient client = ...;
client.DownloadStringCompleted += OnCompleted;
client.DownloadStringAsyc("https://somewebservice/foo");

...

void OnCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    Console.WriteLine(e.Error); // Prints SecurityException. Message = "Security error"
}

Silverlight 应用无法调用 HTTPS 网络服务的可能原因有哪些?我该如何调试它?

编辑 仍然没有答案 -- 我可以提供任何其他信息来帮助解决这个问题吗?

最佳答案

我们想通了。问题归结为跨区域调用:

我们的 Silverlight 应用托管在 foo.bar.com 上,它位于 IE 的常规 Internet 区域(低信任度)。

我们的 Web 服务托管在 foo.ourcompany.com 上,它位于 IE 的 Intranet 区域(高信任度)。

Silverlight 应用程序无法从低安全区域向高安全区域发出 Web 请求调用。请参阅 MSDN 关于 Silverlight URL Access Restrictions 的文章想要查询更多的信息。在我们的例子中,从 Internet->Intranet 是从低信任度到高信任度,因此 SL 调用失败并出现 SecurityException。

意见:Microsoft 应该提供有关在 Web 请求调用期间发生 SecurityException 的原因的信息。这会为我们节省很多时间和金钱。

关于silverlight-4.0 - Silverlight 无法与 HTTPS Web 服务对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495173/

相关文章:

c# - 启动 Windows 服务时出现 TypeInitializationException,因为无法创建配置部分

dynamics-crm-online - CRM 2015 OnLine - 请求权限 SecurityPermission 失败

css - TextBox 在 silverlight 中不显示任何文本

c# - 如何在 https 上托管 silverlight 应用程序?

ssl - 如何使用新的 HTTPS 本地主机证书

ssl - Silverlight 跨方案访问 jpeg 被拒绝

c# - 具有高回调调用的 WCF PollingDuplex 导致新服务订阅的服务太忙异常

LINQ 查询 - 如何排序?

mvvm - UML图中表示的Silverlight MVVM类

android - 权限拒绝 : not allowed to send broadcast android. intent.action.AIRPLANE_MODE