ASP.NET MVC 2 フレームワークを使用した ASP.NET webapp があります。これにより、ユーザーはファイルをアップロード フォルダーにアップロードできます。この問題は、サブフォルダー内の画像が Web ブラウザーによってアクセスされるときに発生します。
アップロード フォルダーは静的であり、ユーザーが変更することはできませんが、その下にあるものはすべて変更できるようになっています。
上記の例では、w3wp.exe が sub_folder ディレクトリにハンドルを作成しているように見えるため (sysinternals によるプロセス エクスプローラーを使用)、image_gallery フォルダーがロックされます。sub_folder ディレクトリの名前を変更することはできますが、名前を変更した後もハンドルはそのままのように見えますが、親フォルダー (この場合は image_gallery) の名前を変更することはできません。
フォルダー内を参照して、他の画像やファイルなどを表示することはできますが、親フォルダーの名前を変更することはできません。
これは MVC 2 フレームワークを使用しているため、次のようにアップロード フォルダーを除外しました。
routes.IgnoreRoute("upload/{*pathInfo}");
global.asax に変換されるため、ASP.NET がこれらの画像を (MVC フレームワークの外部で) 直接提供していると想定しています。
私の質問は、IIS が特定のディレクトリにハンドルを設定したり、強制的にハンドルを削除したりするのを防ぐ方法はあるのでしょうか? ignoreroute が指定されていても、MVC 2 フレームワークは何かトリッキーなことをしていますか?
ヒントをお寄せいただきありがとうございます。