Я выполняю простой сервис на свой сервер с WCF; сервис размещается в (локальном) WebDev.WebServer.exe.
Когда я называю Сервис локальным, я получаю следующее исключение:
Необработанное исключение: Система. ServiceModel. Безопасность. SecurityNegotiationException: Безопасный канал не может быть открыт, потому что согласование безопасности с удаленной конечной точкой перестало работать. Это может быть должно отсутствовать или неправильно указало, что EndpointIdentity в EndpointAddress раньше создавал канал. Проверьте, что EndpointIdentity, указанный или подразумеваемый EndpointAddress правильно, определяет удаленную конечную точку.---> Система. ServiceModel. FaultException: сообщение с Действием 'http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue' не может быть обработано в получателе, из-за несоответствия ContractFilter в EndpointDispatcher. Это может быть из-за любого несоответствием контракта (Действия, которым не соответствуют, между отправителем и получателем) или несоответствием привязки/безопасности между отправителем и получателем. Проверьте, что отправитель и получатель имеют тот же контракт и ту же привязку (включая требования к защите, например, сообщение, Транспорт, Ни один).
Вот мои два app.config файла от клиента и сервера. Я сделал app.config от клиента с svcutil-инструментом, таким образом, это должно быть правильно:
Проблема была на сервере, я положил режим = «сообщение» и хорошо работает. Благодарю.
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
</security>
WCF очень мощный, но может быть кошмаром конфигурации. Вот некоторые потенциальные потенциалы: