Webサイトがあり、Deny Directory Browserfromweb.config file。
ここで私が使用しているコードはROOTに配置されています。動作しません。私はそれをローカルでテストしているので、URL LIKE http:// localhost:3214 / を使用して、CMSからディレクトリを参照できます。
ご協力ありがとうございました!
<configuration>
<location path="Cms">
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
</location>
</configuration>
いくつかのリソース:
http://www.expta.com/2008/03/configuring-virtual-directories-with.html
まず、すべてが<location>
ブロックで機能するわけではありません。
<system.webServer>
が<location>
でサポートされていないという肯定的な声明は見つかりませんが、許可されていると示唆されているケースは見つかりません。これの証拠は(グローバル)machine.config
にあり、system.webserver
セクションはIgnoreSection
ハンドラーを使用するように定義されています。標準のSystem.Configuration
実装では処理されず、<location>
のサポートを提供するのは、構成処理の標準実装です。
Cms
要素を含むdirectoryBrowse
フォルダーにweb.config
を追加して、閲覧がブロックされていることを確認してください。
ギボック、ここでは何も問題はありません。慌てる必要はありません:)
Visual Studio内の組み込みサーバーからWebサイトを閲覧していると仮定すると、これは通常のケースです。
上記のコードを使用してIISに移動した場合、ディレクトリの参照は意図したとおりに動作するはずです。
試してみて、このWebサイトをIISでホストし、何が起こったのか教えてください、ありがとう。
私は同じコードを試していました。あなたが持っているものは実際には正しいです。これが reference です。
もちろん、私にとってはうまくいかなかったし、理由を理解することもできなかった。リチャードの投稿を読んで、誰かがそのディレクトリにweb.configファイルを置いたことを思い出すまでは。このファイルは、メインのweb.configファイルの動作を上書きします。サブディレクトリweb.configで、directoryBrowseオプションが明示的にオンになりました(他のハンドラーもたくさんありますね!)。そのファイルを削除すれば、上記のものは私にとってはうまくいきます。それは実際にリクエストを次のハンドラに渡します。それはまさに私が欲しかったものです。
私はローカルマシンでIIS 7を使用しています。
<directoryBrowse>ディレクティブは、httpプロトコルのみを介してディレクトリのリストを制御します。 http://msdn.Microsoft.com/en-us/library/ms691327%28v=vs.90%29.aspx =
他の(または独自の)アプリケーション内からディレクトリにアクセスしようとしても、コードには影響しません。
@編集:編集後、私があなたを正しく理解した場合-私は、Deny Directory Browserの意味は意図した機能です:の内容を表示しますブラウザを使用して指定されたパス内のディレクトリ。そして、はい、それはおそらくローカル開発サーバーでは動作しません。 IIでお試しください!