我想使用DHL提供的Soap服务。您可以在此处找到wsdl: https://wsbexpress.dhl.com/sndpt/expressRateBook?WSDL
因此,我在Visual Studio 2015中创建了一个新的ClassLibrary,以.NET Framework 4.5为目标。
然后,我通过提供wsdl地址向创建的项目添加了Web引用。我生成了一个包含所有类型和端口的代理文件,但我的第一个问题是:生成的服务扩展自
我尝试使用svcutil生成我的代理。之后,我将生成的.cs文件添加到项目中,并将生成的配置文件内容复制到app.config中。(当然,我删除了Web引用)现在,Service类扩展自
我还创建了一个nunit测试项目,应该测试我的服务,但如果我使用由svcutil生成的版本,就会出现错误。我试图将其翻译成英语,因为错误是以德语显示的:
找不到指向服务合同的默认端点元素。据我了解,这是因为代理位于其自己的类库中,因此实际上没有app.config。但我的测试项目也是一个类库。
现在,如何消费需要ws安全性用户名/密码验证的Web服务?
然后,我通过提供wsdl地址向创建的项目添加了Web引用。我生成了一个包含所有类型和端口的代理文件,但我的第一个问题是:生成的服务扩展自
System.Web.Services.Protocols.SoapHttpClientProtocol
。根据最近的帖子,似乎无法将wsse头添加到该代理中。一些帖子建议添加wse,但似乎较新的Visual Studio版本不支持wse。我尝试使用svcutil生成我的代理。之后,我将生成的.cs文件添加到项目中,并将生成的配置文件内容复制到app.config中。(当然,我删除了Web引用)现在,Service类扩展自
System.ServiceModel.ClientBase
。(我认为VS中的生成器内部使用svctool。如果微软希望人们使用wcf,为什么生成器会生成非wcf代理文件呢?)我还创建了一个nunit测试项目,应该测试我的服务,但如果我使用由svcutil生成的版本,就会出现错误。我试图将其翻译成英语,因为错误是以德语显示的:
找不到指向服务合同的默认端点元素。据我了解,这是因为代理位于其自己的类库中,因此实际上没有app.config。但我的测试项目也是一个类库。
现在,如何消费需要ws安全性用户名/密码验证的Web服务?