2012-01-15 2 views
1

В настоящее время я разрабатываю сайт ASP.NET MVC 3 с использованием Visual Studio 2010 с поддержкой SSL для отладки на моем локальном компьютере через IIS Express. Порт назначается для http и https в файле applicationhost.config для моего сайта.Visual Studio 2010 IIS Express Получить настроенные номера портов

Ради примера, скажем, мой HTTP порт 3333, а мой HTTPS порт 6666.

Есть ли способ, чтобы получить доступ к этим номерам портов, настроенные в IIS Express в моем программно ASP.NET код?

Я могу получить доступ к номеру порта, который я использую в настоящее время, т.е. если я нажимаю страницу на http://localhost:3333/somepage, тогда я могу получить 3333, но я хочу получить 6666 из конфигурации веб-сервера.

+0

С какой проблемой вы пытаетесь решить эту проблему? Если вам нужно перенаправить на версию SSL, есть и другие способы. –

+0

Я пытаюсь написать атрибут, который можно поставить на действие, которое может переключаться между http и https. Подобно RequireHttpsAttribute, за исключением того, что вы можете указать, требуется http или https. В моей среде разработки это требует, в частности, номера порта. Достаточно легко, чтобы жестко кодировать, но хотелось бы как-то вытащить его из конфигурации сервера. – bingles

ответ

1

Вы можете получить порты, используя класс BindingMicrosoft.Web.Administration. Ниже приведен пример.

using (ServerManager sm = new ServerManager()) 
{ 
    var bindings = sm.Sites[HostingEnvironment.ApplicationHost.GetSiteName()].Bindings; 
    foreach (Binding b in bindings) 
    { 
     if (b.IsIPPortHostBinding) 
     { 
      if (b.Protocol.Equals("http")) 
       Debug.WriteLine("HTTP port is " + b.EndPoint.Port); 
      else if (b.Protocol.Equals("https")) 
       Debug.WriteLine("HTTPS port is " + b.EndPoint.Port); 
     } 

    } 
} 
+0

Именно то, что я искал. благодаря – bingles

Смежные вопросы