我从供应商处获得了一个 WSDL 文件,我已将其作为服务引用添加到我在 Visual Studio 2013 中的 C# 项目。
我可以看到我需要的相关类,但是当我调用它们的函数时,我的程序没有传输任何东西。我已将 Wireshark 配置为监听,但在我运行它时没有数据来 self 的程序。
在 Visual Studio 的哪个位置可以看到 Web 服务尝试连接的 IP 地址/URL?在某些时候,我假设它建立了一个 HTTP 连接,我在哪里可以看到这段代码来检查 URL/IP 地址?
最佳答案
WSDL 文件不包含服务端点的地址。您可能创建了一个服务引用或 Web 引用,它们已经为您创建了一个客户端类。如果您使用默认构造函数实例化此客户端(我们称之为 ExampleClient
):
var serviceCLient = new ExampleClient();
然后 URI 将是您导入的 WSDL 文件的路径。如果您将生成的 WSDL 文件导入实际的服务 URI,这在大多数情况下都可以正常工作,但在您的情况下,您需要告诉它服务在哪里运行。您可以在构造函数中传递服务 URI:
var serviceCLient = new ExampleClient("http://example.com/service/endpoint");
或编辑您的 app.config
或 web.config
(取决于项目类型)。它会有这样的东西:
<system.serviceModel>
<client>
<endpoint address="C:\path\to\your.wsdl" etc etc etc... />
</client>
</system.serviceModel>
你应该在那里更改 address
属性。
对于旧式 Web 引用,您可以在 Visual Studio 中右键单击引用(在项目下的 Web References
文件夹中,然后选择“属性”。属性屏幕包含一个“Web 引用” Url”,您可以对其进行编辑以指向实际的服务 URI。
关于c# - 如何使用本地 WSDL 文件中的 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21408129/