この質問は別の質問のようですね。わずかな違い。初期セットアップ中 (アプリケーションの開始時) にサーバーのデプロイされたアドレスを知りたいのですが、その時点ではリクエストはありません:
HttpContext.Current.Request
そのため、現在の URL を取得するためにクエリを実行することはできません。別の方法はありますか?
この質問は別の質問のようですね。わずかな違い。初期セットアップ中 (アプリケーションの開始時) にサーバーのデプロイされたアドレスを知りたいのですが、その時点ではリクエストはありません:
HttpContext.Current.Request
そのため、現在の URL を取得するためにクエリを実行することはできません。別の方法はありますか?
HostingEnvironmentクラスをチェックアウトします。必要な情報がクラスにない場合は、次の記事も参照してください。HostingEnvironment
この記事では、作成者は のApplication_BeginRequest
代わりにメソッドで初期化ロジックを実行しますApplication_Start
。ロックを使用して、この初期化が 1 回だけ実行されるようにします。
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;
}
}
}