Silverlight 4.0 Silverlight can';不能与HTTPS web服务对话?

Silverlight 4.0 Silverlight can';不能与HTTPS web服务对话?,silverlight-4.0,https,securityexception,clientaccesspolicy.xml,Silverlight 4.0,Https,Securityexception,Clientaccesspolicy.xml,我有一个Silverlight应用程序,可以与HTTPS web服务对话 在大多数机器上,它工作正常,但在某些机器上,它总是出现故障 在发生故障的机器上,我在向HTTPS web服务发出WebClient请求时收到SecurityException。SecurityException本身并没有给我任何关于它真正失败原因的线索: WebClient client = ...; client.DownloadStringCompleted += OnCompleted; client.Downloa

我有一个Silverlight应用程序,可以与HTTPS web服务对话

在大多数机器上,它工作正常,但在某些机器上,它总是出现故障

在发生故障的机器上,我在向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 web服务的可能原因是什么?我如何进行调试


编辑仍然没有答案——有没有其他信息可以帮助我解决这个问题?

我们找到了答案。问题归结为跨区域呼叫:

我们的Silverlight应用程序托管在foo.bar.com上,它位于IE的常规互联网区域(低信任)

我们的web服务托管在foo.ourcompany.com上,它位于IE的内部网区域(高度信任)

Silverlight应用程序无法从低安全区域向高安全区域发出web请求呼叫。有关更多信息,请参阅MSDN的文章。在我们的例子中,从Internet->Intranet从低信任转到高信任,因此SL调用失败,出现了SecurityException


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

是的,你看过答案了吗?问题在于,该应用程序运行于IE认为信任度低的地方(互联网),并与IE认为信任度高的地方(企业内部网)托管的服务对话。解决方案是将应用程序和服务放在同一个区域:都在internet上,或者都在intranet上。