我需要使用一个 Web 服务,他们给我发送了 WSDL 文件。 我应该怎样做才能将它添加到我的网站,并开始使用它作为代理。 (如果我把它放在一个虚拟目录中,它可以被发现,但是它会给我与真正的 Web 服务的连接吗?)
在视觉工作室。
如果没有错误,您应该能够在对象浏览器和所有相关方法中看到服务引用。
我会启动 Visual Studio,创建一个 Web 项目(或者控制台应用程序——无所谓)。
净标准:
如果没有错误,只需设置要用来访问服务的 NameSpace,它就会为您生成。
用于.Net Core
上面的任何方法都将生成一个简单的、非常基本的 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)。
configName
remoteURL
使用 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 服务的代码:
如果您想在 。网络核心 项目中添加 wsdl 引用,则没有“添加 web 引用”选项。
要添加 wsdl 引用,请转到解决方案资源管理器,右键单击 References 项目项,然后单击 添加连接服务选项。
然后按「 MicrosoftWCF 网上服务参考资料」 :
在 URI 文本框中输入文件路径并导入 WSDL:
它将生成一个简单的,非常基本的 WCF 客户端,你可以这样使用它:
YourServiceClient client = new YourServiceClient(); client.DoSomething();