OS上の同じディレクトリにマッピングする2つの異なる仮想ディレクトリがあります。この仮想ディレクトリの1つでは、ブラウズフォルダーを無効にする必要があり、もう1つでは、有効にする必要があります。
問題は、私がそれらの1つを変更すると、もう1つも変更されることです。この問題は、両方の仮想ディレクトリがOS内の同じフォルダを指していることに関連していると思いますが、IIS6では、問題なく同じ構成でした。
これを回避するためのアイデアはありますか?
ありがとう!
OS上の同じディレクトリにマッピングする2つの異なる仮想ディレクトリがあります。この仮想ディレクトリの1つでは、ブラウズフォルダーを無効にする必要があり、もう1つでは、有効にする必要があります。
問題は、私がそれらの1つを変更すると、もう1つも変更されることです。この問題は、両方の仮想ディレクトリがOS内の同じフォルダを指していることに関連していると思いますが、IIS6では、問題なく同じ構成でした。
これを回避するためのアイデアはありますか?
ありがとう!
IIS 7は実際にディレクトリ内のweb.configファイルを構成に使用しますが、web.configファイルを使用せずに(つまり、IISマネージャーツールを使用せずに)、IISマネージャーを介してディレクトリブラウジングを有効にする代わりに、単に編集することもできます。 applicationHost.configを使用して、実際にブラウジングを有効にする唯一の仮想ディレクトリでディレクトリブラウジングを設定します。これにより、両方が同じ物理ディレクトリを指している場合でも、1つの仮想ディレクトリを参照できますが、別の仮想ディレクトリを参照することはできません。
次に例を示します。applicationHost.configファイルを編集します。このファイルは、%WINDIR%\ System32 \ inetsrv\configディレクトリにあります。
1)ファイルの一番下に移動します。構成セクションのXML終了タグがあります。
</configuration>
2)そのタグの上に、以下をガイドとして使用してロケーションタグを追加します。
<location path="{website name}/{path to virtual directory}">
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
</location>
{website name}を問題のWebサイトのWebサイト名(IIS Managerに表示される)に置き換え、{path tovirtualdirectory}を参照できるようにする仮想ディレクトリへのパスに置き換えます。例:
<location path="MyWebsite/imagelist">
上記の例で、imagelistが{your webroot} / picsを指す仮想ディレクトリであり、同じく{your webroot}/picsを指すimagesという別の仮想ディレクトリがあるとします。訪問者がyoursite.com/imagesにアクセスすると、画像リストは表示されませんが、yoursite.com / imagelistにアクセスすると、ディレクトリリストが返されます。
色々考えられますが、私が直面して直したのは以下の通りです。
IIS の .NET フレームワークが web.config で指定されたものと一致しません。IIS のフレームワークを、プロジェクトが作成したフレームワークに変更します。(作成されたプロジェクトまたはソリューションが 4.5/4.0 の場合、Web サイトの詳細設定で IIS を 4.0 に変更します。)
すべてのノードで web.config のタグが適切に閉じられていることを確認します。
これはうまくいくはずです!!
ありがとう、アナンド
IIS6 と動作が異なる理由は、IIS6 では、仮想ディレクトリごとに一意のエントリを持つ仮想ディレクトリのIIS6 メタベース DirBrowseFlagsプロパティにディレクトリ参照を許可するためのプロパティが格納されていたのに対し、IIS7 ではそのプロパティのみが格納されるようになったためです。Web.config
ファイル内:
<system.webServer>
<!-- ... -->
<directoryBrowse enabled="true" />
</system.webServer>
IIS7 の両方の仮想ディレクトリは同じ物理ディレクトリを共有しているため、両方とも同じWeb.config
ファイルを共有しています。したがって、一方のプロパティを変更すると、もう一方のプロパティに変更が反映されることがわかります。これは、両方が同じWeb.config
ファイルを変更しているためです。 .
(現時点では、IIS7 の適切な回避策はわかりません。)