129

Server.MapPath()に保存するいくつかのファイルパスを結合するために使用する必要がありますweb.config

ただし、Server.MapPath()現在の HttpContext に依存しているため (と思います)、これを行うことはできません。メソッドを使用しようとすると、「使用可能」であっても、次の例外が発生します。

このコンテキストでは、サーバー操作は使用できません。

~/App_Data/などの完全な物理パスにWeb ルートの相対ディレクトリをマップできる別の方法はありC:\inetpub\wwwroot\project\App_data\ますか?

4

4 に答える 4

308

System.Web.Hosting.HostingEnvironment.MapPath()を試すことができます。

HttpContext は必要ありません。

于 2009-06-01T18:05:48.383 に答える
5

AppDomain.CurrentDomain.BaseDirectorynull を返す可能性があるため使用してくださいContext!!

于 2010-02-02T08:32:36.070 に答える
1

Global.asax では、コンテキストオブジェクトを使用します。

context.Server.mappath()

Context を使用すると、セッション コレクション、リクエスト オブジェクト、レスポンス オブジェクトにもアクセスできます。たとえば、エラーをログに記録したい場合に非常に便利です。

于 2009-06-01T22:12:34.760 に答える
-5

HttpContext.Current.Server.MapPath("/") を試すことができます-これは、以前にクラスで参照した方法です。

于 2009-06-01T18:08:27.503 に答える