我需要使用 Web 服务。他们向我发送了 WSDL 文件。 我应该怎么做才能将它添加到我的网站并开始将其用作代理。 (如果我将它放在虚拟目录中,它可以被发现,但它是否允许我连接到真实的 Web 服务?)
最佳答案
我会启动 Visual Studio,创建一个 Web 项目(或控制台应用程序 - 无关紧要)。
对于 .Net 标准:
- 我会右键单击项目并从添加上下文菜单中选择“添加服务引用”。
- 我会点击“高级”,然后点击“添加服务引用”。
- 我会获取 wsdl 的完整文件路径并粘贴到地址栏中。然后发射箭头(开始按钮)。
- 如果尝试加载文件时出现错误,则文件必须有一个损坏且未解析的 url 需要解析,如下所示: 有关如何修复的信息,请参阅此答案: Stackoverflow answer to: Unable to create service reference for wsdl file
如果没有错误,您只需设置要用于访问该服务的 namespace ,它就会为您生成。
对于 .Net 核心
- 我会右键单击该项目,然后从“添加”上下文菜单中选择“连接服务”。
- 我会从列表中选择 Microsoft WCF Web 服务引用提供程序。
- 我会直接按浏览并选择 wsdl 文件,设置命名空间,然后就可以开始了。 如果遇到任何错误,请参阅上面的错误修复网址。
上述任何方法都会生成一个简单、非常基本的 WCF 客户端供您使用。您应该在生成的代码中找到“YourservicenameClient”类。
作为引用,生成的 cs 文件可以在您的 Obj/debug(or release)/XsdGeneratedCode 中找到,您仍然可以在 TempPE 文件夹中找到 dll。
创建的服务应该具有 WSDL 契约上定义的每个方法的方法。
实例化客户端并调用您要调用的方法 - 仅此而已!
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
如果您需要指定远程 URL(不使用默认创建的 URL),您可以在代理客户端的构造函数中轻松地执行此操作:
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
其中 configName
是要使用的端点的名称(您将使用除 URL 之外的所有设置),remoteURL
是表示要连接的 URL 的字符串到(而不是配置中包含的那个)。
关于c# - 如何使用 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302525/