Ограничение вызовов службы 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.