2009-08-11 23 views
1

我正在本地运行一个WCF客户端,它始终引发一个MessageSecurityException与文本: “从对方收到一个不安全的或不正确的安全错误。请参阅FaultException内部错误代码和详细信息。WCF异常 - 'Body','http://www.w3.org/2003/05/soap-envelope'所需的消息部分未签名。问题

内部异常消息是: “的消息验证安全性时发生错误

我成立了一个跟踪并在该文件,我可以看到“里面的内”异常消息为: 客户机,并与他们全部使用NetTcpBinding的与SECURITYMODE =“消息”的服务之间的“‘body’的,‘http://www.w3.org/2003/05/soap-envelope’所需的消息部分没有签名。

的绑定所有匹配完美。

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

[ServiceContract(ProtectionLevel = ProtectionLevel.None)] 

什么引起我的错误?我不是WCF专家,所以如果您需要更多信息,请点评。任何尝试的想法也会有帮助,我不知道这里发生了什么。

回答

1

默认情况下,所有的邮件都在WCF中签名和加密,为什么你要关闭?

所以在这种情况下,最有可能的是,您的客户端已经对消息进行了加密和签名,但由于服务合同上的属性,服务器无法理解它。

我的建议:除非你有一个非常令人信服的理由,从来没有篡改和更改这些设置 - 忘掉你的服务,它的属性,并保留默认值:

[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)] 

[ServiceContract] 

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

Marc