Я пытаюсь развернуть существующее веб-приложение и службы wcf на сервере Windows Server 2016 IIS. Когда приложение пытается подключиться к службе wcf, используя протокол net.pipe с «уровнем защиты транспорта и EncryptAndSing« уровень защиты ». Оно разрывается с ошибкой« Сервер отклонил учетные данные клиента ». Подробная ошибка приведена ниже.
Сервис предоставляется с использованием имени хоста (net.pipe: // [имя хоста] /service/..svc)
Ошибка трассировки стека:
Exception information:
Exception type: SecurityNegotiationException
Exception message: The server has rejected the client credentials.
Server stack trace:
at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity)
at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream stream)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator upgradeInitiator, IConnection& connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
1) Работают незащищенные вызовы (Режим безопасности = "Нет")
2) Если мы заменим имя хоста на IP-адрес хоста. Это работает.
Так как у нас есть среда балансировки нагрузки с несколькими серверами. Поэтому мы хотим предоставить сервис с [hostname]. Ожидается, что защищенные вызовы для конечной точки сетевого канала, выставленные с использованием имени хоста в адресе, будут работать.
Это работает, как и ожидалось, в Windows Server 2008.