【问题标题】:Could not stablish secure channel for SSL/TLS adding new service reference in Visual Studio无法为 SSL/TLS 建立安全通道,在 Visual Studio 中添加新服务引用
【发布时间】:2019-02-19 17:42:34
【问题描述】:

情况如下:新项目(控制台或表单)。我去参考,添加新的服务参考。我写了 url,我收到一个错误,因为它不能为 SSL/TLS 建立安全通道,所以请求被取消。没有https,它可以工作。 有朋友在其他windows 10上测试过,没有问题。 用 Iexplorer 或 chrome,没问题,我看到 wdsl 的 xml,但用 Visual Studio 不可能,它不起作用。我已经测试了所有我见过的帖子,但没有。唯一的办法就是用wdsl.exe生成代理类

对此有任何想法吗? 问候。

【问题讨论】:

    标签: c# visual-studio wcf soap


    【解决方案1】:

    您的意思是当服务托管在 https 上时,通过添加服务引用来调用 wcf 服务失败?
    如果服务器使用自签名证书作为服务器身份凭证,则有一个默认步骤在客户端验证服务器证书。您可以参考以下代码。

    ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
    ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();
    try
    {
        var result = client.SayHello();
        Console.WriteLine(result);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }
    

    如果问题仍然存在,请随时告诉我。

    【讨论】:

    • 你好亚伯拉罕。问题不是调用调用,是添加服务。我无法将服务添加到连接服务(服务参考)。
    • 我希望您能与我分享错误详情。您如何托管服务并设置身份验证安全性以对客户端进行身份验证?我建议您在 IIS 上托管服务时尝试启用位于 IIS 身份验证模块中的匿名身份验证。
    • 我没有托管任何东西。我只是在消费一项服务。详细信息:我创建了一个新项目。我去项目参考,添加新的服务参考。在新窗口中,我写了服务 wsdl url,即 https,VS 说我的请求被取消了,因为它可以创建一个安全通道。
    • 你可以在浏览器中访问服务https wsdl,而无法通过添加服务引用生成客户端代理类?您是否尝试过 svcutil.exe? docs.microsoft.com/en-us/dotnet/framework/wcf/…
    • 对。是的,我现在已经使用 wsdl.exe 生成了代理类,但是我想知道为什么有些 https url 可以工作而其他的不行。事实上,这个url在其他电脑的VS中是可以接受的,而我的不接受。
    【解决方案2】:

    这是因为 SSL 证书未安装在您的证书存储库中。

    在浏览器中打开 Web 服务 URL。

    它会提示您将 SSL CA 安装到本地计算机的证书存储库中。

    对话框将显示两个选项“本地用户”、“本地机器”。

    您必须选择“本地机器”。

    那么即使使用 SSL url,您也应该能够添加服务引用。

    这应该可以解决您的问题。

    【讨论】:

    • 谢谢 Manoj。例如,当我在 Chrome 中打开 URL 时,我可以看到 xml,但它没有询问我有关 SSL CA 的信息。好像没问题。我点击了挂锁,下载了证书并将其安装在本地机器容器、个人、根实体和中间实体中,但没有,我有同样的问题。浏览器从未提示我安装任何证书。它总是有效。
    • Manoj,其他测试:我正在测试的 url 来自一家快递公司。当我与几家公司一起开发探险时,我已经测试了其他快递的其他 URL。我已经在浏览器中打开了 url,没问题,我看到了 xml。之后,我去了我的项目,添加了新的服务引用(https),一点问题都没有,所以问题只出在第一个 url 上。来自视觉工作室的消息说:取消请求。无法创建安全通道 ssl/tls。元数据包含无法解析的引用。
    • 现在我正在用 SoapUI 进行测试,没有问题,我可以看到 wsdl 定义等。问题仅在于 Visual Studio。
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2011-04-28
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多