zoukankan      html  css  js  c++  java
  • asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理

    1.调用wsdl接口,首先需要将wsdl文件转换为cs文件:

        

    进入VS 开发人员命令提示行,输入如下命令:

    c:/Program Files/Microsoft Visual Studio 8/VC>wsdl /language:c# /n:wsdlLib /out:c:/TestService.cs http://211.138.102.146:8092/FBI2BOSSInterFace.asmx?wsdl

    注意:http://211.138.102.146:8092/FBI2BOSSInterFace.asmx?wsdl   wsdl 地址,

    也可以是wsdl路径:C:/Temp/TestService.wsdl  

    重要参数解析:

    /language:

        用于生成的代理类的语言。请从“CS”“VB”“JS”“VJS”

        “CPP”中选择,或者为实现 System.CodeDom.Compiler.CodeDomProvider

        的类提供一个完全限定的名称。默认语言为“CS”(CSharp)

        缩写形式为“/l:”

    /namespace:

        生成的代理或模板的命名空间。默认命名空间

        为全局命名空间。缩写形式为“/n:”

    /out:

        生成的代理代码的文件名或目录路径。默认文件名是从

        服务名派生的。缩写形式为“/o:”

    其他参数详细解析:

    wsdl.exe <选项> ...
    
         - 选项 -
    
    -
    
        指向 WSDL 协定、XSD 架构或 .discomap 文档的 URL 或路径。
    
    /nologo
    
        取消显示版权标志。
    
    /language:
    
        用于生成的代理类的语言。请从“CS”、“VB”、“JS”、“VJS”、
    
        “CPP”中选择,或者为实现 System.CodeDom.Compiler.CodeDomProvider
    
        的类提供一个完全限定的名称。默认语言为“CS”(CSharp)。
    
        缩写形式为“/l:”。
    
    /sharetypes
    
        打开类型共享功能。此功能针对不同服务之间共享
    
        的相同类型(命名空间、名称和网络签名必须相同)
    
        创建一个具有单一类型定义的代码文件。
    
        请使用 http:// URLs 作为命令行参数来引用
    
        服务,或为本地文件创建一个 discomap 文档。
    
    /verbose
    
        指定 /sharetypes 开关时显示额外信息。
    
        缩写形式为“/v”。
    
    /fields
    
        生成字段而非属性。缩写形式为“/f”。
    
    /order
    
        为粒子成员生成显式顺序标识符。
    
    /enableDataBinding
    
        在所有生成的类型上实现 INotifyPropertyChanged 接口,
    
        以启用数据绑定。缩写形式为“/edb”。
    
    /namespace:
    
        生成的代理或模板的命名空间。默认命名空间
    
        为全局命名空间。缩写形式为“/n:”。
    
    /out:
    
        生成的代理代码的文件名或目录路径。默认文件名是从
    
        服务名派生的。缩写形式为“/o:”。
    
    /protocol:
    
        重写要实现的默认协议。请从“SOAP”、“SOAP12”、
    
        “HttpGet”、“HttpPost”中选择。
    
    /username:
    
    /password:
    
    /domain:
    
        连接到要求身份验证的服务器时使用的凭据。
    
        缩写形式为“/u:”、“/p:”和“/d:”。
    
    /proxy:
    
        用来处理 HTTP 请求的代理服务器的 URL。
    
        默认为使用系统代理服务器设置。
    
    /proxyusername:
    
    /proxypassword:
    
    /proxydomain:
    
        连接到要求身份验证的代理服务器时使用的凭据。
    
        缩写形式为“/pu:”、“/pp:”和“/pd:”。
    
    /appsettingurlkey:
    
        在代码生成中用来读取 URL 属性的
    
        默认值的配置项。默认为不从配置
    
        文件中读取。缩写形式为“/urlkey:”。
    
    /appsettingbaseurl:
    
        计算 URL 段时使用的基 URL。
    
        还必须指定 appsettingurlkey 选项。URL 段是
    
        从 appsettingbaseurl 计算
    
         WSDL 文档中的 URL 的相对 URL 的结果。缩写形式为“/baseurl:”。
    
    /parsableerrors
    
        输出错误,其格式与编译器报告的格式类似。
    
         - 高级 -
    
    /server
    
        服务器开关已被否决。请改用 /serverInterface。
    
        使用基于协定的 ASP.NET,为 Xml Web Services 实现
    
        生成抽象类。默认情况下,生成客户端代理
    
        类。
    
    /serverInterface
    
        为 ASP.Net Web 服务的服务器端实现生成
    
        接口。将为 wsdl 文档中的每个绑定生成
    
        一个接口。wsdl 单独实现 wsdl 协定(实现
    
        接口的类在类方法上不应包括下列任意一项:
    
        更改 wsdl 协定的 Web 服务属性或序列化
    
        属性)。缩写形式为“/si”。
    
    /parameters:
    
        从指定的 xml 文件读取命令行选项。这样可以
    
        指定命令行中无法使用的选项,例如选择
    
        生成的异步编程模型类型。有关详细信息,
    
        请参阅工具文档。缩写形式为“/par:”。
    
     
    

      

    2.调用SSL接口报错,是因为SSL网站证书不可用或者到期等问题,默认阻止了程序对其的访问

        1. 发生以下任一操作为真:该证书是自签名的,而不是增加一条,作为凭证。 该证书已过期。 该证书是由那不是你的机器上安装根证书签名。 吊销列表进行探讨,但不能尝试获得对服务器的证书,看看您是否需要安装客户端端上的任何特定的证书来得到它的工作。 

    2. .NET是看到在连接的另一端无效的SSL证书。有一种解决方法,但不是生产代码:

    // Put this somewhere that is only once - like an initialization method ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateCertificate); ... static bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }

    3. 更短的版本,上面的解决方案:

    ServicePointManager.ServerCertificateValidationCallback += (o, c, ch, er) => true;

  • 相关阅读:
    Android Studio使用教程
    http://www.android-doc.com/#/295
    JDK,JRE,JVM区别与联系(ZZ)
    eclipse下载
    mac下android环境搭建笔记(android studio)
    android环境配置
    JDK、JRE、JVM三者间的关系
    实体类作用、封装与面向对象思想
    领域模型中的实体类分为四种类型:VO、DTO、DO、PO
    [架构设计] 组件和模块的区别
  • 原文地址:https://www.cnblogs.com/zhoushiya/p/12107642.html
Copyright © 2011-2022 走看看