Причина, по которой вы можете получить доступ к метаданным и не можете вызвать службу, заключается в том, что вы используете WsHttpBinding, вероятно, с конфигурацией по умолчанию.Он использует безопасность сообщений, которая используется только для использования службы, а не для метаданных службы.Он использует учетные данные Windows и безопасность Windows для шифрования и подписи сообщений.Из-за безопасности Windows он работает только тогда, когда и клиент, и сервер находятся в одном домене.
Ваш клиент не является частью домена - вы можете отправлять учетные данные Windows либо с защитой сообщений, либо с безопасностью транспорта.В случае защиты сообщений вы должны будете использовать clientCredentialType="UserName"
, средство проверки пароля по умолчанию, и вам придется настроить сертификат X509 в режиме обслуживания для поддержки шифрования и подписи.В случае безопасности транспорта будет использоваться либо HTTPS (сертификат X509, настроенный в http.sys / IIS), либо режим TransportCredentialOnly
, который будет отправлять имя пользователя и пароль windows в виде простого текста по HTTP (это плохое решение).В случае безопасности на транспорте установлен clientCredentialType="Basic"
.