2017-02-24 4 views
1

IISで実行されるASP.Net MVCアプリケーションがあります。通常の(Controller-Action-View)プロセスを経ることなく、クライアントがフォルダ内の特定のファイルに直接アクセスできるようにすることは可能ですか?ASP.Net MVCは、特定のファイルへの明示的なルーティングを許可します。

言ってやるが、私は、ドメイン名を持っている:www.example.comとファイルパスはドット'.'せずに、あなたはControllerという名前Sampleと作成することができ、~/.Sample/SubFolder/Filenamewww.example.com

に対する(ドットSample'.'に注意してください)ですActionという名前のSubFolderは、引数Filenameをとり、ViewsフォルダにSubFolder Viewを返します。しかし、このフォルダにはドットがあります。

だから、私はすでにwww.example.com.Sample/SubFolderフォルダに相対ファイルFilenameを置くと、次のエラーをwww.example.com/Sample/Filenameを書き込むことによって、それをアクセスしようとしたとき、アプリケーションが直接

www.example.com/.Sample/SubFolder/Filename 

を書き込むことによってFilenameコンテンツを表示したいです示されている:

サーバーエラー

404 - ファイルまたはディレクトリがFOUありませんnd。

あなたが削除された可能性があります探し ある資源、その名前が変更された、または一時的に利用できない です。

IISを使用する解決策が許容されます。

+0

あなたは 'SampleController'のコントローラメソッドを作成し、特定のアクション名を省略し、それのためのルートなので、' /サンプルを作成することができます/ someFileName'は 'publicActionResult XXX(string fileName)'にルーティングします。 –

+0

@StephenMueckeこれは私が通常行うものですが、 'Sample'は実際には' Sample'ではありません。 ' - >これは通常のコントローラメソッドではできません。 – Ian

+0

'dot'を扱うための情報については、[この回答](http://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis)を参照してください。しかし、私は '/ .Sample/Filename'の意味を理解していません(ドットはどこから来て、フォルダ名は' .Sample'ですか?) –

答えて

0

この問題は、IISで、Directory Browsingを許可する特定のフォルダを選択することで解決できます。

デフォルトではIISは、すべてというフォルダのDirectory Browsing機能を無効にします。以下のようにIIS Connections -> Server Name -> Web site name -> Folder nameでフォルダを選択し、特定のフォルダのディレクトリの参照を有効にするには:

enter image description here

:指定したフォルダのFeature View

enter image description here

IIS -> Directory Browsing機能を選択次に、特定のフォルダの機能を有効にするだけです。

enter image description here

そして今、我々は、便利なフォルダを閲覧することができます。

enter image description here

関連する問題