c# - 如何使用本地 WSDL 文件中的 Web 服务?

标签 c# web-services visual-studio wsdl

我从供应商处获得了一个 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.configweb.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/

相关文章:

c# - 从 UWP 应用程序运行外部 exe,解决沙盒模式

sql-server - 使用 SSMS 或 VS 2012 生成过滤后的 INSERT 语句

asp.net - .Net Core 1.1.0 Visual Studio 工具

c - realloc 在 vi​​sual studio 中失败,但可以使用 gcc (ntdll.dll)

c# - 如何将 Controller Action 的参数传递给 Ninject 具体类型?

c# - asp.net mvc文件下载名称编码

C# 只替换文件中的一个东西

asp.net - 单个域上的两个 Web 应用程序

java - Web 服务最重要的用途

c# - 使用 Web 服务连接 Android 应用程序和 .NET 世界的最佳实践是什么?