質問: ASP.NETの仮想ディレクトリの作成について 現在ASP.NETにて画像を表示するサイトを作成しています。 IISの静的コンテンツを有効にしてASPのプログラムの中に 画像フォルダを作成して、imageUrlでフォルダの画像を選択すると Web上では正常に表示されます。 以下ソースコードです。 ``` ``` 実際に保管している画像は別の場所のため仮想ディレクトリをIIS上で追加してそのフォルダの画像を表示ようとしていますが 表示されません。 仮想ディレクトリ名はpicZZとしています。 ### 該当のソースコード ``` ``` ### 試したこと IIS上で仮想ディレクトリのセキュリティでEveryOneの アクセスの許可をすべて許可にしています。 共有タグで ネットワークのファイルとフォルダの共有でEvryOneを追加しています。 考えられる原因として仮想フォルダのパスがASP.NETで正常に認識できていなと 思います。 どなたかお分かりの方がいらしたらお手数ですが教えてくださいますようお願い申し上げます。 開発環境 OS Windows10pro visual Stadio 2017 .NET FramewORK バージョン V4.0.30319 >「仮想フォルダ」って何ですか? 仮想ディレクトリのまちがい? すいません 仮想フォルダではなく仮想ディレクトリの間違いです。 よろしくお願いします。 追記 surferOnWww様 返信ありがとうございます。 掲示板の使い方が不慣れなためご無礼などありましたらお許しください。 IISでのフォルダの構成ですが ▽PC名 |--アプリケーションプール ▽--サイト | ▽--Default Web Site >aspnet_client ▽--ASPNETSample |--Account |++App_Code >bin >Contnt >fonts >pic >picZZ ←これが仮想ディレクトリです |--IMG_0645.png ←配置した画像データです >Scripts となっております。 ASPのフォルダ名でpicのフォルダはASP.NETの画面で直接フォルダを作成して 画像ファイルを配置しました。 配置直後で作成したwebフォームではIISの設定で 静的コンテンツが有効になっていなかったため 画像が表示されず随分と悩みました。 静的コンテンツを有効にする設定で画像が表示されていることを考えると 仮想ディレクトリのパスがASP.NETで識別できていないと考えています。 ご指導のほど宜しく御願いします。 SurferOnWwwさま お世話になっております。 IISのフォルダの構成画像を添付いたしました。 ご指導のほどよろしくお願いします。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/1dcd5a209653b6221947106b5d59b643.jpeg) SurferOnWwwさま お世話なります。 >「どこ」とお聞きしたのは、物理フォルダのことなのですが。IIS Manager ではなくて、エクスプローラで見たときのものです。 失礼しました。 エクスプローラ上の仮想ディレクトリの位置と 問題のある画像のURLで表示した画像をセットで添付させていただきます。 以下、表示されない画像をインターネットエクスプローラーで検索したときのURLです。 localhost/ASPNETSample/picZZ/IMG_0645.png webブラウザ上では問題のある画像は正常に表示されます。 このことから画像ではなく仮想ディレクトリのURLの記述方法に問題があるのではと考えております。 ご指導のほどよろしくお願い申しあげます。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/d4991d42ccd38d54345daf50c9e416bf.png)
回答: SurferOnWwwさま お世話なります。 >ブラウザのアドレスバーに URL を打ち込んで問題なく表示されるということは、 >仮想ディレクトリの設定などは問題ないはずです。 >とすると、Image コントロールの ImageUrl の設定間違いが怪しいと思います。 >ブラウザのアドレスバーに入力した画像の http から始まる URL を設定してみたらどうなりますか? ご指導の通りhttpから始まるアドレスで再度検証してみました。 http://192.168.10.4/ASPNETSample/picZZ/IMG_0645.png をWebブラウザで打ち込むと正常に表示されました。 ImageUrlにもhttpから始まるアドレスを代入しました。 以下代入したURLです。 ※IPアドレスは固定しています。 http://192.168.10.4/ASPNETSample/picZZ/IMG_0645.png 代入後にASP.NETのブラウザで表示で表示したところ正常に表示されました。 検証のためhttp://を削除して 192.168.10.4/ASPNETSample/picZZ/IMG_0645.png で表示しようとすると画像は表示されませんでした。 このことにより、仮想ディレクトリでの画像表示にはhttp://から始まる アドレスにて指定することで表示できるということがわかりました。 SurferOnWwwさまのご指導のおかげで問題は解決とさせていただきます。 今後も至らないことでご迷惑をお掛けすると思いますが、 ご指導のほどよろしくお願いいたします。 本日は遅くまでお付き合いいただきありがとうございました。