Ограничение вызовов службы WCF для локальных клиентов

Я пытаюсь открыть службу WCF только для локального использования.

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

Вот пример кода:

var baseUri = new Uri("http://127.0.0.1:9001");
var webHost = new WebServiceHost(typeof(MyService), baseUri);
webHost.AddServiceEndpoint(typeof(MyService), new WebHttpBinding(), string.Empty);
webHost.Open();
Console.WriteLine("press any key to exit");
Console.ReadLine();

Посмотрев на ресурс Монитор показывает, что он слушает "неуказанный ip".

Как я могу заставить его слушать только на localhost?

1 ответ

Решение

Вы можете установить HostNameComparisonMode на свой WebHttpBinding в Exact, это включает имя хоста в сопоставлении конечной точки.

Значение HostnameComparisonMode, которое указывает, используется ли имя хоста для доступа к службе при сопоставлении по URI. Значением по умолчанию является StrongWildcard, которое игнорирует имя хоста в совпадении.

Но используя Named Pipes лучше в этом случае. Для получения дополнительной информации см MSDN.

Другие вопросы по тегам