2012-04-13 19 views
2

この質問はanother questionのようですか?多少の違い。私は(アプリケーション起動中)の初期設定をしていながら、サーバーの展開アドレスを知りたいと、その時点で要求がない:ASP.NET MVCクエリがデプロイされているアプリケーションサーバーアドレスが要求されていないとき

HttpContext.Current.Request 

だから私は、現在のURLを取得するには、それを照会することはできませんが。別の方法がありますか?

+1

2つのこと(より良い方法かもしれません?)、どのバージョンのMVCフレームワークを使用していますか? – Jared

+0

私はコードでwcfサービスを探しており、現在のURLからサービスへの相対パスを知っている開発のために、面倒なハックをしています。 MVC 3 –

答えて

0

HostingEnvironmentクラスをチェックアウトします。必要な情報がHostingEnvironmentクラスに存在しない場合は、following articleもご覧ください。この記事では、Application_Startの代わりにApplication_BeginRequestメソッドで初期化ロジックを実行します。それは、この初期化は一度だけ実行されることを確実にするためにロックを使用しています。

void Application_BeginRequest(Object source, EventArgs e) 
{ 

    HttpApplication app = (HttpApplication)source; 
    HttpContext context = app.Context; 

    // Attempt to peform first request initialization 

    FirstRequestInitialization.Initialize(context); 
} 

を、ここでFirstRequestInitializationクラスだ:私は...あなたがこれを必要とするかの興味

class FirstRequestInitialization 
{ 
    private static bool s_InitializedAlready = false; 
    private static Object s_lock = new Object(); 

    // Initialize only on the first request 

    public static void Initialize(HttpContext context) 
    { 
     if (s_InitializedAlready) 
     { 
      return; 
     } 

     lock (s_lock) 
     { 
      if (s_InitializedAlready) 
      { 
       return; 
      } 

      // Perform first-request initialization here ... 

      s_InitializedAlready = true; 
     } 
    } 
} 
関連する問題