仮想ディレクトリを異なる名前のフォルダにリンクすることができますので、仮想ディレクトリの物理パスを取得するにはどうすればよいですか。仮想ディレクトリの物理パスを取得する方法
私はHttpContext.Current.server.MapPathを試してきましたが、ディレクトリが存在しない場合でも、別の名前で存在する場合でも、物理パスとパラメータで送信するパスを返します。
Exemple:
C:\ blabla \サイト\アプリケーション1 \ Imaageesss - ディスク上
アプリケーション1 \画像
(ISS、私のVirutalのディレクトリで)しかし、私は上のMapPathの操作を行う場合"/ Images"は C:\ blabla \ Sites \ Application1 \ Imaageesssだが、 C:\ inetpub \ wwwroot \ Imagesにリンクされている実際のディレクトリではない。
以下のすべての答えでは問題は解決しません。 MapPathが仮想IISディレクトリであるかどうかを確認するのに十分スマートではないと仮定します。これは、アプリケーションのルートパスを指定したパスに追加するだけです。残念ながら、Webを集中的に検索した後でも、この解決策を見つけることはできませんでした。 – needfulthing
方法を見つけました。下記の回答を参照してください。 – needfulthing
私は2つの異なる状況下で同様の問題を抱えていました。ある状況では 'Server.MapPath("/Images/image.jpg ")'の代わりに 'Server.MapPath("/Application1/Images/image.jpg ")'を呼び出さなければなりませんでした。アプリケーション内の仮想ディレクトリ名を誤って参照しました。私は、これらのことのそれぞれを行うまで、OPが経験していたのと同じ結果を得ました。ちょうど私が上に追加すると思った... – ionalchemist