Ошибка WCF - процессору безопасности не удалось найти заголовок безопасности в сообщении - PullRequest
6 голосов
/ 10 июня 2010

Я получаю то, что теперь кажется ошибкой безопасности в моей службе WCF. Первоначально моя ошибка была связана с ложным состоянием (оно было удалено с помощью прокси-сервера клиента для устранения этой ошибки), но я нашел дополнительную информацию путем включения трассировки.

Я не смог запустить свое решение после возникновения этой ошибки, и даже моя резервная копия теперь получает ту же ошибку. Я не уверен, что послужило причиной этого, я отменил сделанные мной изменения (ничего не относящиеся к WCF) и все еще получаю ту же ошибку.

Ошибка трассировки - System.ServiceModel.Security.MessageSecurityException: процессору безопасности не удалось найти заголовок безопасности в сообщении. Это может быть связано с тем, что сообщение является незащищенной ошибкой или из-за несоответствия между связывающими сторонами. Это может произойти, если служба настроена для обеспечения безопасности, а клиент не использует защиту.

Я не совсем уверен, что мне нужно сделать, чтобы это исправить, любая помощь будет полезна. Приложение ранее работало.

Ответы [ 3 ]

8 голосов
/ 31 мая 2012

Несмотря на несоответствие привязки, вы можете заставить WCF работать, задав

Безопасность
enableUnsecuredResponse = "true"

Ниже приведен пример кодачто вы можете использовать для сравнения с вашими собственными настройками ...

<security enableUnsecuredResponse="true"
          authenticationMode="MutualCertificateDuplex"
          defaultAlgorithmSuite="TripleDesRsa15"
          includeTimestamp="false"
          messageSecurityVersion="Default" >
  <issuedTokenParameters defaultMessageSecurityVersion="Default">
    <issuer address="" binding="" bindingConfiguration="">
      <identity>
        <certificateReference storeLocation="CurrentUser"
                              x509FindType="FindBySerialNumber"
                              findValue="0b 8d a9 18 59 65 36 b9 de 65 8b 21 ba 6c ab cc"
                              isChainIncluded="true" />
      </identity>
    </issuer>
  </issuedTokenParameters>
</security>
8 голосов
/ 08 июня 2015

Если вы хотите избежать настройки настраиваемой привязки, вы можете получить ссылку на текущий basicHttpBinding, создать из нее настраиваемую привязку и включить свойство 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);
0 голосов
/ 10 июня 2010

Возможно, ваша проблема связана с этой темой:

Ошибки службы WCF после установки обновлений WindowsXP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...