如何使用WSDL

jma*_*yor 115 c# wsdl web-services

我需要使用Web服务.他们给我发了WSDL文件.我应该怎么做才能将它添加到我的网站并开始使用它作为代理.(如果我将它放在虚拟目录上就可以发现它,但是它是否授予我与真实Web服务的连接?)

mar*_*c_s 129

我会启动Visual Studio,创建一个Web项目(或控制台应用程序 - 无关紧要).

对于.Net标准:

  1. 我将右键单击该项目,然后从" 添加"上下文菜单中选择"添加服务引用" .
  2. 我会点击A​​dvanced,然后点击Add Service Reference.
  3. 我会得到wsdl的完整文件路径并粘贴到地址栏中.然后点开箭头(按下按钮).
  4. 如果尝试加载文件时出错,则必须存在文件需要解析的损坏且未解析的URL,如下所示: 在此输入图像描述 有关如何修复的信息,请参阅此答案: Stackoverflow回答:无法为wsdl文件创建服务引用

如果没有错误,您只需设置要用于访问服务的NameSpace,它就会为您生成.

对于.Net Core

  1. 我会右键单击该项目,然后从Add上下文菜单中选择Connected Service.
  2. 我将从列表中选择Microsoft WCF Web服务引用提供程序.
  3. 我会按下浏览并立即选择wsdl文件,设置命名空间,我很高兴.如果您遇到任何错误,请参阅上面的错误修复URL.

上述任何方法都将生成一个简单,非常基本的WCF客户端供您使用.您应该在生成的代码中找到"YourservicenameClient"类.

出于参考目的,可以在Obj/debug(或release)/ XsdGeneratedCode中找到生成的cs文件,您仍然可以在TempPE文件夹中找到dll.

创建的服务应该具有WSDL协定中每个已定义方法的方法.

实例化客户端并调用您要调用的方法 - 这就是全部!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
Run Code Online (Sandbox Code Playgroud)

如果需要指定远程URL(不使用默认创建的远程URL),则可以在代理客户端的构造函数中轻松执行此操作:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");
Run Code Online (Sandbox Code Playgroud)

其中configName是要使用的端点的名称(您将使用除URL之外的所有设置),并且remoteURL是表示要连接的URL的字符串(而不是配置中包含的URL).


vid*_*oon 43

在视觉工作室.

  • 创建或打开一个项目.
  • 右键单击解决方案资源管理器中的项目.
  • 选择"添加服务参考"
  • 使用您收到的WSDL粘贴地址.
  • 单击确定.

如果没有错误,您应该能够在对象浏览器中看到服务引用以及所有相关方法.

  • <3 Visual Studio ..是的,它真的那么简单:) (8认同)
  • OP没有地址而是文件. (3认同)
  • 通过键入文件的路径.是什么让你认为这不起作用? (2认同)

azh*_*lov 16

使用WSDL.EXE实用程序从WSDL生成Web服务代理.

你会得到一个很长的C#源文件,其中包含一个如下所示的类:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}
Run Code Online (Sandbox Code Playgroud)

在客户端,消耗Web服务的代码:

  1. 实例化MyService.
  2. 设置其Url属性
  3. 调用Web方法

  • +1,其他解决方案对我不起作用. (14认同)
  • 这创建了一个"旧式"ASMX Web服务 - 那些已经过时 - 现在应该使用WCF (5认同)

Ned*_*d G 5

如果要在.Net Core 项目中添加wsdl参考,则没有“添加Web参考”选项。

要添加wsdl引用,请转到解决方案资源管理器,右键单击“引用”项目项,然后单击“ 添加连接的服务”选项

在此处输入图片说明

然后单击“ Microsoft WCF Web服务参考”:

在此处输入图片说明

在URI文本框中输入文件路径,然后导入WSDL:

在此处输入图片说明

它将生成一个简单的,非常基本的WCF客户端,您可以使用以下方式:

YourServiceClient client = new YourServiceClient();
client.DoSomething();
Run Code Online (Sandbox Code Playgroud)