2012-01-15 27 views
1

現在、IIS Expressを使用してローカルマシンでSSLを有効にしてVisual Studio 2010を使用してASP.NET MVC 3サイトを開発しています。自分のサイトのapplicationhost.configファイルでhttpとhttpsにポートが割り当てられています。例のため Visual Studio 2010 IIS Express設定済みのポート番号を取得

、私のASP.NETでプログラム的にIIS Expressで設定されているこれらのポート番号にアクセスする方法はありますのは、私のHTTPポートは3333であるとしましょう、と私のHTTPSポートは6666.

ですコード?

私は現在使用しているポート番号にアクセスできます。もし私がhttp://localhost:3333/somepageでページを打っているなら、私は3333に行くことができますが、Webサーバーの設定から6666を得ることができます。

+0

これで解決しようとしている問題は何ですか? SSLバージョンにリダイレクトする必要がある場合は、他の方法があります。 –

+0

私は、httpとhttpsを切り替えることができるアクションに置くことができる属性を記述しようとしています。 RequireHttpsAttributeに似ていますが、httpまたはhttpsが必要です。私の開発環境では、これにポート番号を含める必要があります。ハードコードには簡単ですが、何とかサーバー構成から引き出すことが大好きです。 – bingles

答えて

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

関連する問題