c# - WCF 错误 - 安全处理器无法在消息中找到安全 header

标签 c# wcf .net-3.5 wcf-security

我的 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/

相关文章:

c# - 淡化面板 - Windows 窗体

c# - 如何在 .Net 服务器中支持不加密的 SSL?

.net - .NET 3.5 SDK 位于哪里?

c# - 运动起点/终点检测

c# - 保存对象/序列化

c# - 如何将 WPF TextBlock 文本绑定(bind)到不同的属性?

wcf - 如何使用 Postman 调用 WCF SOAP Web 服务

c# - 从 API Controller 调用 POST 方法

WCF RIA 服务和 session 外的持久/静态变量

wcf - protobuf-net 和 wcf Web api