Requestオブジェクトにアクセスせずにサーバーの URL (例: http://www.myapp.com:8080/applicationFolder ) を取得する方法はありますか?
aplication_start と、すべての機能を備えたRequestオブジェクトが利用できない一部のクラスで URL が必要です。
注:アプリケーションフォルダーを取得するには、次を使用できることを知っています
VirtualPathUtility.ToAbsolute("~/");
Requestオブジェクトにアクセスせずにサーバーの URL (例: http://www.myapp.com:8080/applicationFolder ) を取得する方法はありますか?
aplication_start と、すべての機能を備えたRequestオブジェクトが利用できない一部のクラスで URL が必要です。
注:アプリケーションフォルダーを取得するには、次を使用できることを知っています
VirtualPathUtility.ToAbsolute("~/");
HttpContext.Current.Request は、セッションで現在実行中の Request オブジェクトを常に返す静的プロパティです。
アプリケーションの起動後に最初のリクエストがいつ行われたかを知るには、カスタムソリューションが必要だと思います。その後、必要な電子メールを送信できます.. archive/2008/07/25/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-application-start.aspxこれは、BeginRequest イベントで最初の初期化チェックを行います。
IP アドレスや名前を使用するなど、多くの異なるアドレスがすべて同じ ASP.NET Web サイトを指している可能性があります。同じ ASP.NET アプリケーションを指す DNS 名が複数存在する場合があります。したがって、Global の親クラスである HttpApplication は、訪問者がどの URL を使用するかを知りません。IISでさえ知りません。したがって、最初のリクエストを待ってから、訪問者がサイトへのアクセスに使用する URL をリクエストで確認する必要があります。このようなもの:
string baseUrl = Context.Request.Url.GetLeftPart(UriPartial.Authority);
Global.Request はまだ初期化されていないため、Context を使用して Global.Application_Start 中に Request にアクセスする必要があります。