如何使用 WSDL

我需要使用一个 Web 服务,他们给我发送了 WSDL 文件。 我应该怎样做才能将它添加到我的网站,并开始使用它作为代理。 (如果我把它放在一个虚拟目录中,它可以被发现,但是它会给我与真正的 Web 服务的连接吗?)

266170 次浏览

在视觉工作室。

  • 创建或打开一个项目。
  • 右键单击解决方案资源管理器中的项目。
  • 选择“添加服务引用”
  • 用您收到的 WSDL 粘贴地址。
  • 单击 OK。

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

我会启动 Visual Studio,创建一个 Web 项目(或者控制台应用程序——无所谓)。

净标准:

  1. 我会右键单击该项目,然后从 上下文菜单中选择“添加服务引用”。
  2. 我会点击高级,然后点击添加服务参考。
  3. 我将获得 wsdl 的完整文件路径并粘贴到地址栏中。然后发射箭(去按钮)。
  4. 如果在加载文件时出现错误,那么文件必须解析一个中断的、未解析的 url,如下所示: enter image description here 有关如何修复的信息,请参考以下答案: Stackoverflow 的答案是: 无法为 wsdl 文件创建服务引用

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

用于.Net Core

  1. 我将右键单击该项目并从 Add 上下文菜单中选择 Connected Service。
  2. 我将从列表中选择 MicrosoftWCFWeb 服务参考提供程序。
  3. 我会按浏览和选择 wsdl 文件直接,设置名称空间,我是好去。 如果遇到任何错误,请参考上面的错误修复 URL。

上面的任何方法都将生成一个简单的、非常基本的 WCF 客户机供您使用。您应该在生成的代码中找到一个“ YourservicenameClient”类。

作为参考,生成的 cs 文件可以在 Obj/debug (或 release)/XsdGeneratedCode 中找到,并且仍然可以在 TempPE 文件夹中找到 dls。

创建的服务应该为 WSDL 契约上的每个已定义的方法提供方法。

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

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

如果需要指定远程 URL (不使用默认创建的 URL) ,可以在代理客户机的构造函数中轻松实现:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

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

使用 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 {
...
}

在客户端,使用 Web 服务的代码:

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

如果您想在 。网络核心 项目中添加 wsdl 引用,则没有“添加 web 引用”选项。

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

enter image description here

然后按「 MicrosoftWCF 网上服务参考资料」 :

enter image description here

在 URI 文本框中输入文件路径并导入 WSDL:

enter image description here

它将生成一个简单的,非常基本的 WCF 客户端,你可以这样使用它:

YourServiceClient client = new YourServiceClient();
client.DoSomething();