2012-01-15 100 views
1

我目前正在開發一個ASP.NET MVC 3站點,使用Visual Studio 2010並啓用SSL,以通過IIS Express在本地計算機上進行調試。爲我的網站在applicationhost.config文件中爲http和https分配一個端口。Visual Studio 2010 IIS Express獲取配置的端口號

例如起見,假設我的HTTP端口是3333,我的HTTPS端口是6666

是否有訪問在IIS Express在我的ASP.NET編程配置這些端口號的方式碼?

我可以訪問我目前使用的端口號,即。如果我打到http://localhost:3333/somepage的頁面,那麼我可以看到3333,但我希望能夠從Web服務器配置中獲取6666。

+0

你想用這個解決什麼問題?如果您需要重定向到SSL版本,還有其他方法。 – 2012-01-15 02:01:43

+0

我正在嘗試編寫一個可以放在可以在http和https之間切換的操作的屬性。與RequireHttpsAttribute類似,只不過您可以指定需要http或https。在我的開發環境中,這需要包括端口號。很容易硬編碼,但希望能夠以某種方式從服務器配置中獲取它。 – bingles 2012-01-15 02:26:03

回答

1

您可以使用Binding類的Microsoft.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 2012-02-22 14:06:37

相關問題