代码之家  ›  专栏  ›  技术社区  ›  Judah Gabriel Himango

Silverlight无法与HTTPS Web服务对话?

  •  3
  • Judah Gabriel Himango  · 技术社区  · 15 年前

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

    但是,在大多数机器上,它工作得很好,在某些机器上,它总是出现故障。

    在它失败的机器上,当向HTTPSWeb服务发出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服务的可能原因是什么?我该怎么调试这个呢?

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   Judah Gabriel Himango    15 年前

    我们解决了。问题出在跨区域呼叫上:

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

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

    Silverlight应用程序无法从低安全区域向高安全区域发出Web请求调用。请参阅有关 Silverlight URL Access Restrictions 更多信息。在我们的例子中,从Internet到Intranet从低信任到高信任,因此SL调用失败,出现了一个SecurityException。

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