У нас есть приложение WPF, которое подключается к службам WCF, используя netTcpBinding
, используя TransportWithMessageCredential
безопасность с clientCredentialType
, установленным на Windows
для безопасности сообщений и транспорта.Пул приложений IIS выполняется под учетной записью пользователя домена.
Приведенная выше настройка работает локально просто отлично (это означает, что службы WCF и приложение WPF выполняются из одного блока).Когда приложение WPF находится в другом окне, связь не устанавливается со следующей ошибкой:
System.ServiceModel.Security.SecurityNegotiationException: согласование безопасности SOAP с net.tcp: //serv01.domain.local: 30128 / UsersService.svc 'для цели' net.tcp: //serv01.domain.local: 30128 / UsersService.svc 'не удалось.Смотрите внутреннее исключение для более подробной информации.---> System.ComponentModel.Win32Exception: ошибка аутентификации интерфейса поставщика поддержки безопасности (SSPI).Сервер может не работать в учетной записи с идентификатором «host / serv01.domain.local».Если сервер работает в учетной записи службы (например, «Сетевая служба»), укажите ServicePrincipalName учетной записи в качестве идентификатора в EndpointAddress для сервера.Если сервер работает под учетной записью пользователя, укажите UserPrincipalName учетной записи в качестве идентификатора в EndpointAddress для сервера.на System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob (байт [] incomingBlob, ChannelBinding channelbinding, ExtendedProtectionPolicy protectionPolicy) на System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody (сообщение incomingMessage, SspiNegotiationTokenProviderState sspiState) на System.ServiceModel.Security.IssuanceTokenProviderBase 1.GetNextOutgoingMessage(Message
incomingMessage, T negotiationState) at
System.ServiceModel.Security.IssuanceTokenProviderBase
1. DoNegotiation (TimeSpan timeout) --- Конец трассировки стека внутренних исключений ---
Между блоками нет брандмауэра.Кроме того, когда IIS на веб-сервере использует идентификацию LocalService, связь между приложениями работает нормально.
Что может быть причиной проблем и как я могу определить основную причину?Я не вижу никаких дополнительных сообщений об ошибках в журналах событий, которые могли бы пролить некоторый свет.