找不到WebService RequestSoapContext属性

mas*_*um7 6 c# asp.net wse web-services

我在visual studio 2013中有一个asp.net网站.我添加了一个web服务.我需要将身份验证参数(用户名和密码)作为SOAP标头发送.但它无法找到属性RequestSoapContext.

我添加了使用Microsoft.Web.Services3; 在我的代码中.

CCWS.Service proxy = new CCWS.Service();
UsernameToken userToken = new UsernameToken("", "", PasswordOption.SendPlainText);
proxy.RequestSoapContext.Security.Tokens.Add(token);
Run Code Online (Sandbox Code Playgroud)

一些论坛说要在reference.cs文件中更改引用类型.但我在我的解决方案中找不到任何此类文件.有人可以帮忙吗?

spe*_*arp 8

这个问题相当陈旧,但在搜索之后,似乎解决方案是手动修改生成的代理代码以继承而Microsoft.Web.Services3.WebServicesClientProtocol不是System.Web.Services.Protocols.SoapHttpClientProtocol.

  • 这是Microsoft [来源](https://msdn.microsoft.com/query/dev15.query?appId=Dev15IDEF1&l=EN-US&k=k(Microsoft.Web.Services3.WebServicesClientProtocol); k(TargetFrameworkMoniker-.NETFramework,版本%3Dv4.5); k(DevLang-csharp)&rd = true)描述了这一点.特别重要的是:***"......代理类默认派生自SoapHttpClientProtocol.要使用WSE的功能,请将代理类派生的类更改为WebServicesClientProtocol."*** (3认同)
  • Microsoft.Web.Services2.WebServicesClientProtocol也为我工作,以防您无法添加v3) (2认同)

小智 1

使用 WseWsdl3.exe 生成代码 找到作为 wse 3.0 的一部分下载的 WseWsdl3.exe 并执行以下命令: C:\samples\wse>WseWsdl3.exe C:\samples\wse\us.wsdl /out:c:\samples \wse\myProxyClass.cs /协议:SOAP /类型:webClient

我想这可能对你有帮助。