6

ASP.NET 3.5 で記述された Web アプリケーションがあります。その中で、コード ビハインドでファイルにアクセスします。(通常の C# ファイル アクセスは、ページのライフサイクル中にサーバー上で行われます。これは、URL や Web ブラウザーとは関係ありません)。

本番システムでは、web.config で問題のファイルへのフル パスを指定します。バージョン管理されたプロジェクトにファイルのローカル コピーを含め、バージョン管理された web.config で相対パスを使用してそれを参照できるようにしたいと考えています。アプリケーションは、構成を行うことなく、Visual Studio のデバッガー内から実行できます。

問題は、Web アプリケーションがデバッグ モードで実行されている場合、その作業ディレクトリがプロジェクト ディレクトリでもソリューション ディレクトリでもないことです。Windows またはコンソール アプリケーションでは、プロジェクトのプロパティ ページで作業ディレクトリを設定できます。しかし、Web アプリケーションではできません。

どうすればこれを機能させることができるかについてのアイデアはありますか?

4

3 に答える 3

14

アプリケーションのルートのパスを取得するには:

//equivalent to Server.MapPath("/"); if at domain root, e.g Http://mysite.com/
string path = Server.MapPath("~");

この回答は、あなたにも役立つ可能性のあるいくつかの異なる一般的なServer.MapPath()用途の概要を示しています。

于 2010-02-03T23:51:17.070 に答える
4

コードビハインド: HttpContext.Current.Server.MapPath("~")

于 2012-05-15T07:21:24.350 に答える
3

使用する:

Server.MapPath("~");
于 2010-02-03T23:52:10.607 に答える