3

Requestオブジェクトにアクセスせずにサーバーの URL (例: http://www.myapp.com:8080/applicationFolder ) を取得する方法はありますか?

aplication_start と、すべての機能を備えたRequestオブジェクトが利用できない一部のクラスで URL が必要です。

:アプリケーションフォルダーを取得するには、次を使用できることを知っています

VirtualPathUtility.ToAbsolute("~/");
4

2 に答える 2

2

HttpContext.Current.Request は、セッションで現在実行中の Request オブジェクトを常に返す静的プロパティです。

アプリケーションの起動後に最初のリクエストがいつ行われたかを知るには、カスタムソリューションが必要だと思います。その後、必要な電子メールを送信できます.. archive/2008/07/25/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-application-start.aspxこれは、BeginRequest イベントで最初の初期化チェックを行います。

于 2012-06-29T05:50:42.973 に答える
1

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 にアクセスする必要があります。

于 2013-07-19T02:57:54.033 に答える