我正在尝试从.NET Core 2.0应用程序与外部SOAP Web服务进行通信。我有服务的WSDL和XSD文件,并使用这些文件作为svcutil.exe的输入,以从命令行生成代码。 只要我使用收到的WSDL文件的不安全版本(仅用于测试目的),这就可以正常工作,但是当我使用WSDL文件的WSS版本生成的代码时,我会在某些操作契约上遇到编译错误属性,例如:
[System.ServiceModel.OperationContractAttribute(ProtectionLevel=System.Net.Security.ProtectionLevel.Sign, Action="CollectedData", ReplyAction="*")]
(...)
<ReturnType> MethodToBeCalledFromMyCode (<RequestDataType> request);
似乎ProtectionLevel
不是.NET Core WCF客户端中OperationContractAttribute的一部分。
有谁知道如何克服这个问题(或者以正确的方式为.NET Core做到这一点)? 或者,如果这是为下一版.NET Core实现的路线图?
我意识到这可能是平台依赖的(因为它反过来又与从证书存储区访问证书以签署消息等),所以我愿意接受替代解决方案。
目前,我通过使用.NET Framework解决了这个问题,并在虚拟机上运行WCF代码,并在那里安装了本地存储中所需的证书。但我们的大多数代码库都是C#.NET Core,在Kubernetes集群中的Linux Containers中运行,因此这种解决方法给我们带来了一些麻烦,因为它不适合其他部署和基础架构维护。
任何建议都将受到赞赏。