如何从本地WSDL文件使用Web服务?

时间:2014-01-28 14:21:34

标签: c# web-services visual-studio wsdl

我从提供程序获得了一个WSDL文件,并将其作为服务引用添加到Visual Studio 2013中的C#项目中。

我可以看到我需要的相关课程,但是当我调用它们上面的函数时,我的程序中没有任何内容传输。我已经配置了Wireshark来监听,但是当我运行它时,没有数据来自我的程序。

在Visual Studio中,我可以在哪里看到Web服务尝试连接的IP地址/ URL?在某些时候我假设它建立了一个HTTP连接,我在哪里可以看到这个代码来检查URL / IP地址?

1 个答案:

答案 0 :(得分:0)

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。