12

ASP.NET MVC Web アプリケーションで HttpContext なしで実行されるプロセスがいくつかあります。このプロセスでは、データの読み取り/書き込みのために、アプリケーションの Contents ディレクトリへの物理パスを特定できる必要があります。しかし、HttpContext がないため、Server.MapPath などの凝ったものを使用することはできません。提案?

4

2 に答える 2

15

HttpRuntime.AppDomainAppPathWebサイトでは、実行パスの特定の瞬間(つまり、サイトの起動時)に利用できるものがないため、を使用するのが最適HttpContext.Currentです。

この投稿も参照してください。

于 2010-08-23T16:45:03.217 に答える
4

これを行う最善の方法は、AppDomain.BaseDirectoryプロパティを使用することです。カスタム アプリケーション ドメインをいじらない限り、ルート アプリケーション ディレクトリを指します。言い換えると; これら 2 つの文字列は同じになります。

string mapUsingAppDomain = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
string mapUsingServer = HttpContext.Current.Server.MapPath("~/Contents");
于 2010-08-23T16:42:32.967 に答える