【问题标题】:SlSvcUtil.exe The underlying connection was closed: Could not establish trust relationship for the SSL/TSL secure channelSlSvcUtil.exe 底层连接已关闭:无法为 SSL/TSL 安全通道建立信任关系
【发布时间】:2013-11-12 15:32:45
【问题描述】:

我在开发服务器 (IIS) 上有 WCF 服务。该服务启用了自签名 SSL 和用户名身份验证。

我已经设置了一个测试 ASP MVC 项目,它可以成功地从服务中调用数据,如下所示:

        CategoryServiceClient csc = new CategoryServiceClient();
        csc.ClientCredentials.UserName.UserName = "Username";
        csc.ClientCredentials.UserName.Password = "Password";

        ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

        var a = csc.GetCategories();

当我使用自签名证书时,对 ServicePointManager.ServerCertificateValidationCallback 的调用在这种情况下有效。

问题是我想将此服务用于需要我使用 SlSvcUtil.exe 来构建客户端代码的 Xamarin 项目。

在命令提示符中,我导航到 SLSvcUtil 目录:

cd C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Tools

然后我运行这个 cmd 来生成代码文档:

SlSvcUtil.exe https://x.x.x.x:2022/CategoryService.svc /directory:"c:\Users\Shaun\Desktop\Services"

这会失败并出现以下错误:

The underlying connection was closed: Could not establish trust relationship for the SSL/TSL secure channel.

如何在没有验证检查的情况下运行此命令或像我的代码示例一样自动通过验证?

-或-

如何使用 Xamarin 为使用 SSL 的 WCF 服务生成服务引用?

-或-

如何使我的自签名(开发)SSL 证书能够建立信任关系?

【问题讨论】:

  • 尝试直接从 xamarin Studio 添加 Web 引用
  • 直接从 Xamarin 添加 Web 引用会产生另一个我在这里查询过的错误:stackoverflow.com/questions/19936247/… 看来 Xamarin 不喜欢自签名证书或 SSL
  • 我也遇到了类似的问题。有人知道这个场景的解决方案吗?

标签: c# wcf ssl cmd xamarin


【解决方案1】:

问题在于 Xamarin 不能很好地与 SSL 或您将用于 WCF 的引用类型一起工作。

最后,我们删除了 WCF 组件并使用了 ASP Web API。

JSON 来回切换,需要做更多的工作,但它更易于使用/调试,而且恰好也更具有交叉兼容性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-06
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多