web-dev-qa-db-ja.com

IISアプリケーションファイルシステムパスの取得

IIS 7.0がインストールされており、.svcサービスを備えた.netアプリケーションがあります。

アプリケーションが指す仮想ディレクトリ内のファイルをポイントしたい(アプリケーションで仮想ディレクトリを変換したことに注意してください)。

ただし、.net-verseで一般的なAPI呼び出しを使用してファイルを開こうとすると、ルート(完全)パスではなく相対パスを指定すると、リソースが見つからない場合にエラーが発生します。

アプリの物理パスを取得するにはどうすればよいですか?

これはWebアプリケーションであることに注意してください。私のアプリによってホストされているWebサービスからこの呼び出しを行う必要があるため、Requestオブジェクトを使用できません。

17
Andry

これを試して、問題の解決に役立つ可能性があります

string apPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

または

string apPath = System.Web.Hosting.HostingEnvironment.MapPath("~/folder/file");
34
Pranay Rana

コンソールアプリケーションプロジェクトテンプレートまたはWebアプリケーション以外のテンプレートを使用している場合は、System.Webへの参照を追加する必要があります。

これで、System.Web.Hosting名前空間を参照できるようになります。

お役に立てれば!

3
raring sunny