【问题标题】:Silverlight 5 connecting to WCF service via sslSilverlight 5 通过 ssl 连接到 WCF 服务
【发布时间】:2012-10-18 00:13:21
【问题描述】:

我正在开发一个 Silverlight 5 项目,并且正在构建一个通过 SSL 连接到 WCF 服务的应用程序。当我通过 HTTP 连接时,这似乎在浏览器和浏览器外都有效。现在我已经实现了 SSL,它只适用于浏览器。有什么想法吗?

【问题讨论】:

    标签: c# silverlight windows-services wcf-client


    【解决方案1】:

    如果没有任何其他详细信息,很难猜测出了什么问题,但我最好的猜测是您使用的证书不受 Windows 信任,而您的浏览器信任它。您是否使用了一些您导入浏览器的自签名证书?如果你是,你也应该导入到 Windows 证书存储中。

    在浏览器中运行时,Silverlight 将通过浏览器执行所有 http(s) 调用,因此将由浏览器决定证书是否受信任。在浏览器之外,使用内置的 http 堆栈,而后者又使用 Windows 的 CA 列表。

    您可以通过将这些行添加到 App.xaml.cs 中的 Application_Startup() 来强制 Silverlight 使用某个 http 堆栈:

     WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.BrowserHttp);
     WebRequest.RegisterPrefix("https://", System.Net.Browser.WebRequestCreator.BrowserHttp);
    

    这将使您的应用程序在运行 Out of Browser 时使用 IE 堆栈。即使在浏览器中运行,您也可以反过来使用内置的 http 堆栈:

     WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.ClientHttp);
     WebRequest.RegisterPrefix("https://", System.Net.Browser.WebRequestCreator.ClientHttp);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多