none
This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. RRS feed

  • 问题

  • WCF 传输安全,客户端和服务器端使用证书进行验证。WSHttpBinding.启动服务在进行客户端添加服务引用的时候遇到的错误。

    https://frank-xu2009:8001/
    . This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server.
    The underlying connection was closed: An unexpected error occurred on a send.
    Authentication failed because the remote party has closed the transport stream.
    If the service is defined in the current solution, try building the solution and adding the service reference again.
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年8月13日 7:47
    版主

答案

  • 这个问题是因为SSL端口证书配置出错导致的。因为在使用Transportat传输安全模式的时候,证书要提供对SSL安全套阶层的加密的证书。比如我们使用的端口是9001,我们就要在此端口上配置SSL证书。IIS可以直接设置,这个值是针对非IIS宿主来说。
    WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding 文章里讲解了具体的步骤:
    1)在 Windows Server 2003 或 Windows XP 中,通过 queryssl 开关使用 HttpCfg.exe 工具查看当前端口配置,在命令窗口切换到HttpCfg在文件目录,你如下面代码:
            httpcfg query ssl
      
      (2)Vista:
           netsh http show sslcert

        查询SSL端口证书设置信息,如图:

    【2.2】设置SSL证书:

        (1)在 Windows Server 2003 或 Windows XP:
           httpcfg set ssl -i 0.0.0.0:9001-h 9174185b2860b6d5ec3de133d5fcc4e1419b09e5
        (2)Vista:
           netsh http add sslcert ipport=0.0.0.0:9001 certhash=9174185b2860b6d5ec3de133d5fcc4e1419b09e5
      appid={111111111-2222-3333-4444-qqqqqqqqqqqqq} 。最后一个GUID.你可以随便编写一个。使用工具也可以。certhash 参数指定证书的指纹。ipport 参数指定 IP 地址和端口,功能类似于前述 Httpcfg.exe 工具的 -i 开关。appid 参数为可用于标识所属应用程序的 GUID。
     【2.3】删除SSL证书:
        (1)Windows Server 2003 和 Windows XP 中:
        httpcfg delete ssl -i 0.0.0.0:9001-h 9174185b2860b6d5ec3de133d5fcc4e1419b09e5
        (2)Vista:
        Netsh http delete sslcert ipport=0.0.0.0:9001。

      具体参考原文。
    谢谢。我这里又重新制作了证书,然后设置SSL证书给新的端口菜测试成功的。
    这个错误是大家在进行WCF传输安全编程的时候会遇到的。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年8月13日 10:03
    版主