小编Cha*_*les的帖子

在soap消息中使用wsse安全标头(Visual Studio 2015,.Net Framework 4.5)

我想使用 DHL 提供的肥皂服务。您可以在此处找到 wsdl:https : //wsbexpress.dhl.com/sndpt/expressRateBook?WSDL

因此,我在 Visual Studio 2015 中创建了一个新的 ClassLibrary,目标是 .net framework 4.5。

然后我通过提供 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 testproject 来测试我的服务,但是如果我使用带有 svcutil 生成版本的版本,我会收到一个错误。我尝试将其翻译成英文,因为错误以德文显示:

找不到指向服务合同的默认端点元素。我发现这是因为代理在它自己的类库中,因此并没有真正的 app.config。但是我的测试项目也是一个类库。

如今,使用需要 ws 安全用户名/密码身份验证的 Web 服务的实际方法是什么?

wcf soap web-services .net-4.5 visual-studio-2015

5
推荐指数
1
解决办法
7990
查看次数

标签 统计

.net-4.5 ×1

soap ×1

visual-studio-2015 ×1

wcf ×1

web-services ×1