我的 WCF 服务中出现了一个安全错误。最初我的错误是关于故障状态(使用客户端代理删除以清除此错误),但通过启用跟踪找到了更多信息。
遇到此错误后,我一直无法运行我的解决方案,甚至我的备份副本现在也遇到同样的错误。我不确定是什么导致了这种情况发生,我撤消了所做的更改(与 WCF 无关),但仍然出现相同的错误。
跟踪的错误是 - System.ServiceModel.Security.MessageSecurityException:安全处理器无法在消息中找到安全 header 。这可能是因为消息是不安全的错误,或者是因为通信双方之间的绑定(bind)不匹配。如果服务配置为安全而客户端未使用安全性,则可能会发生这种情况。
我不太确定我需要做什么来解决这个问题,任何帮助都会很有用。该应用程序之前可以正常工作。
最佳答案
如果您想避免配置自定义绑定(bind),您可以获取对当前 basicHttpBinding 的引用,从中创建自定义绑定(bind),并包含 EnabledUnsecuredResponse 属性:
//client is a reference to your gerenated proxy client class
var elements = client.Endpoint.Binding.CreateBindingElements();
elements.Find<SecurityBindingElement>().EnableUnsecuredResponse = true;
client.Endpoint.Binding = new CustomBinding(elements);
关于c# - WCF 错误 - 安全处理器无法在消息中找到安全 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013884/