wsdl生成Webservice客户端和服务端C#代码

本文介绍了如何使用wsdl在C#中生成Webservice服务端和客户端代码,并讨论了在从Java发布的wsdl生成C#代码时遇到的端口名称不匹配问题,以及解决方案。在解决过程中,通过调整WebServiceBindingAttribute和SoapDocumentMethodAttribute,实现了soap1.1端口名称的匹配,但soap1.2端口名称仍存在差异。
摘要由CSDN通过智能技术生成

【整理,本文内容来源于网络及本人实践】

Webservice一般是先开发服务,发布wsdl后由客户端调用,但也有先有标准的wsdl文件,反过来开发服务的情况。为了保证开发的服务和wsdl一样,可以把往wsdl生成服务端代码,实现其中方法,再发布服务。

VS提供了一个命令,可以将wsdl生成服务端或客户端代码。打开:开始-所有程序-Microsoft Visual Studio2008-Visual Studio Tools-Visual Studio 2008命令提示

执行 wsdl /?,可以看到wsdl的说明,默认生成语言是CS,也可以设置VB、JS、CPP等;默认生成是客户端代码,也可生成服务端的抽象类或接口。

如wsdl d:\Hello.wsdl /server /out:d:\HelloServer.cs

生成Hello.wsdl服务端代码的抽象类,稍加修改并实现其中内容即可发布。


我遇到的问题

在开发过程中,我拿到的wsdl是由java用endpoint发布的,我重新生成C#服务端代码再发布服务,得到的wsdl比不完全一样

本以为也没什么事,然而java那边调用我的时候,说我的wsdl里<service>节点的<port>里没有name=HelloHttpSoap11EndPoint的端口。

我注意了一下,标准的wsdl里有HelloHttpSoap11EndPoint(soap11)、HelloHttpSoap12EndPoint(soap12)和HelloHttpEndPoint,而我的wsdl里只有Hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值