Asp.net WCF例外-第'条;主体'';http://www.w3.org/2003/05/soap-envelope' 所需的消息部分未签名。问题

Asp.net WCF例外-第'条;主体'';http://www.w3.org/2003/05/soap-envelope' 所需的消息部分未签名。问题,asp.net,wcf,wcf-binding,wcf-security,Asp.net,Wcf,Wcf Binding,Wcf Security,我正在本地运行一个WCF客户端,它总是抛出一个MessageSecurityException,其中包含以下文本: “从另一方接收到未安全或安全性不正确的故障。有关故障代码和详细信息,请参阅内部故障例外。” 内部异常消息为: “验证邮件安全性时出错” 我设置了一个跟踪,在该文件中我可以看到“内部”异常消息,如下所示: “正文”“必需的消息部分“”未签名。” 所有绑定都在客户端和服务之间完美匹配,所有绑定都使用带有securityMode=“Message”的netTcpBinding 装饰服务背

我正在本地运行一个WCF客户端,它总是抛出一个MessageSecurityException,其中包含以下文本: “从另一方接收到未安全或安全性不正确的故障。有关故障代码和详细信息,请参阅内部故障例外。”

内部异常消息为: “验证邮件安全性时出错”

我设置了一个跟踪,在该文件中我可以看到“内部”异常消息,如下所示: “正文”“必需的消息部分“”未签名。”

所有绑定都在客户端和服务之间完美匹配,所有绑定都使用带有securityMode=“Message”的netTcpBinding

装饰服务背后接口的ServiceContract是:

 [ServiceContract(ProtectionLevel = ProtectionLevel.None)]

是什么导致了我的错误?我不是WCF专家,所以如果您需要更多信息,请发表评论。任何关于尝试什么的想法都会很有帮助,我只是不知道这里发生了什么。

默认情况下,所有消息都是在WCF中签名和加密的,你到底为什么要关闭它

因此,在本例中,很可能是您的客户机对消息进行了加密和签名,但由于您在服务合同中的属性,服务器无法理解消息

我的建议是:除非你有非常令人信服的理由,否则不要篡改和更改这些设置-只需忘记服务上的该属性并保留默认设置:

[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]

如果您真的必须关闭它,您需要在对话双方都关闭它-客户端和服务器必须就消息是否加密和签名达成一致


Marc

默认情况下,所有消息都在WCF中签名和加密,你到底为什么要关闭它

因此,在本例中,很可能是您的客户机对消息进行了加密和签名,但由于您在服务合同中的属性,服务器无法理解消息

我的建议是:除非你有非常令人信服的理由,否则不要篡改和更改这些设置-只需忘记服务上的该属性并保留默认设置:

[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]

如果您真的必须关闭它,您需要在对话双方都关闭它-客户端和服务器必须就消息是否加密和签名达成一致

马克