SlSvcUtil.exe基础连接已关闭:无法为SSL / TSL安全通道建立信任关系

时间:2013-11-12 15:32:45

标签: c# wcf ssl cmd xamarin

我在开发服务器(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的呼叫在此实例中有效。

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

在命令提示符中,我导航到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.

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

-OR -

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

-OR -

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

1 个答案:

答案 0 :(得分:0)

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

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

来回JSON,需要更多的腿部工作,但它更容易使用/调试,并且碰巧也更加交叉兼容。