2011-06-23 5 views
0

私はASP.NET MVC 2フレームワークを使用してASP.NET webappを持っています。ユーザーはファイルをアップロードフォルダにアップロードできます。サブフォルダ内の画像をWebブラウザでアクセスしたときに問題が発生します。イメージでIIS7/ASP.NETのディレクトリをロックさせないようにする

http://mywebapp/uploads/image_gallery/sub_folder/image.jpg

アップロードフォルダは静的であり、ユーザが変更することはできませんが、それ以下のものがあります変更可能であることを意図しています。

上記の例では、w3wp.exeが(プロセスエクスプローラでsysinternalsを使用して)サブフォルダディレクトリにハンドルを作成するように見えるため、image_galleryフォルダがロックされます。私はまだsub_folderディレクトリの名前を変更することができますが、ハンドルは名前を変更した後もそのまま残りますが、親フォルダ(この場合はimage_gallery)の名前を変更することはできません。

私はまだフォルダ内を閲覧し、他の画像やファイルなどを閲覧できますが、親フォルダの名前を変更することはできません。 Global.asaxのに

routes.IgnoreRoute("upload/{*pathInfo}"); 

ので、私はASP.NETがアップサービスを提供していると仮定しています:

これは私がアップロードのために除外して置かれているMVC 2のフレームワークを使用しているとはとても似フォルダそれらの画像は直接(MVCフレームワークの外で)

だから私の質問は、特定のディレクトリにハンドルを置くか、ハンドルを削除することを強制する方法はありますか? ignorerouteが指定されているにもかかわらず、MVC 2フレームワークが何かトリッキーなことをしていますか?

ご協力いただきありがとうございます!

答えて

0

私はASP.NETは、一般的に変更するためのファイルシステムを監視するためのディレクトリハンドルがワーカープロセッサで作成される、と考えている - 私はことを示唆している

などの新しいDLLは、これは変更する/設定ファイルの追加を応答することができますユーザーはWebサーバー上の物理的なディレクトリ構造を制御できるという概念から抜け出しています。通常、ユーザーが作成できるのは論理ディレクトリー構造ですが、物理的な構造はプログラム・ロジックによって制御されます。ロジックは、ユーザーが作成した論理構造と、実際の物理構造とのマッピングをWebサーバーに格納します。

+0

ありがとう@VinayCは、私が思っていたことを確認しています。アップデート用のファイルを追跡していました。コントローラの/ uploads /へのアクセスをまとめてそこから進みます。アドバイスありがとう:) – Brett

0

私は同じ問題を抱えていたし、多くの調査の後、私は犯人見つけた:実行するすべてのHTTPモジュールを作るには、このオプションを(設定

のWeb.config

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 

をすべてのファイル、静的なファイルを含む)をに、偽を私のために修正しました。

関連する問題