【发布时间】:2016-06-02 14:32:39
【问题描述】:
我想使用 DHL 提供的肥皂服务。你可以在这里找到 wsdl:https://wsbexpress.dhl.com/sndpt/expressRateBook?WSDL
因此,我在 Visual Studio 2015 中针对 .net framework 4.5 创建了一个新的 ClassLibrary。
然后我通过提供 wsdl 地址向创建的项目添加了 Web 引用。我生成了一个包含所有类型和端口的代理文件,但我的第一个问题是,生成的服务从System.Web.Services.Protocols.SoapHttpClientProtocol 扩展。正如我在最近的帖子中所读到的,无法将 wsse 标头获取到该代理。有些帖子建议添加 wse,但似乎较新的 Visual Studio 版本不支持 wse。
我尝试通过 svcutil 生成我的代理。之后,我将生成的 .cs 文件添加到项目中,并将生成的配置文件的内容复制到 app.config。 (因为我删除了网络参考)
现在服务类扩展System.ServiceModel.ClientBase。 (我认为VS中的生成器在内部使用svctool。如果微软希望人们使用wcf,为什么生成器会生成非wcf代理文件。
我还创建了一个 nunit testproject 来测试我的服务,但是如果我将这个版本与 svcutil 生成的版本一起使用,我会收到错误消息。我尝试将其翻译成英语,因为错误以德语显示:
找不到指向服务合同的默认端点元素。我发现这是因为代理在它自己的类库中,因此实际上并没有 app.config。但是我的测试项目也是一个类库。
现在使用需要 ws security 用户名/密码验证的 Web 服务的实际方式是什么?
【问题讨论】:
标签: web-services wcf soap visual-studio-2015 .net-4.5