我正在创建一个 WCF Web 服务,其请求/响应应该只签名。为此,在我设置的 ServiceContract 属性上
ProtectionLevel = ProtectionLevel.Sign
这行得通。
由于要求,一些 SoapFaults 应该从服务中抛出;两种类型的 SoapFaults:
- 申请相关
- 与 WS-Addressing 相关(例如缺少 MessageID)
为此,我使用了处理 SoafFaults 的常规方法:创建一个 IErrorHandler,其中使用 MessageFault.CreateFault 创建一个 Message 实例。
几乎所有返回的 SoapFaults 都没有加密(这对我来说没问题),我的问题是为什么那些带有 action="http://www.w3.org/2005/08/addressing/fault" 或 " http:// www.w3.org/2005/08/addressing/soap/fault “被加密了吗?