4

Web サイトを作成して にマップしD:\MyWebAppPluginsサブ ディレクトリに仮想ディレクトリを作成して にマップしましたD:\Project\Presentation\Web\Accounting。問題は、http://localhost/Plugins/AccountingI get wrong 結果の物理パスを取得したい場合です。

物理的に存在しない「D:\MyWebApp\Plugins\Accounting」を返しますServer.MapPath("~/Plugins/Accounting")Server.MapPath("/Plugins/Accounting")私は取得したいD:\Project\Presentation\Web\Accounting。私はそれを検索し、以下の行を取得します:

  1. Server.MapPath(".") は、実行中のファイル (aspx など) の現在の物理ディレクトリを返します。
  2. Server.MapPath("..") は親ディレクトリを返します
  3. Server.MapPath("~") は、アプリケーションのルートへの物理パスを返します
  4. Server.MapPath("/") は、ドメイン名のルートへの物理パスを返します (アプリケーションのルートとは必ずしも同じではありません)。

しかし、私の場合(サブフォルダー内の仮想ディレクトリ)、機能しません!!! IIS8 と Asp.Net-Mvc 4 と C#4 を使用しています。どうすればこれを入手できますか?

4

3 に答える 3

0

これを使って、

Request.PhysicalApplicationPath + "Plugins\\Accounting\\
于 2013-07-04T05:18:15.367 に答える
0

問題は、仮想ディレクトリがあり、asp.net がアプリケーションのベース ディレクトリと見なすものをリセットすることです。本当に仮想ディレクトリにある必要がありますか? その場合は、Request.ApplicationPath を調べて見つけてみてください。

于 2013-07-04T15:55:19.527 に答える