Iis 7 虚拟目录上的IIS浏览目录问题

Iis 7 虚拟目录上的IIS浏览目录问题,iis-7,iis-6,virtual-directory,directory-browsing,Iis 7,Iis 6,Virtual Directory,Directory Browsing,我有两个不同的虚拟目录映射到操作系统上的同一目录。在其中一个虚拟目录中,我需要禁用浏览文件夹,在另一个虚拟目录中,我需要启用它 问题是,当我改变其中一个时,另一个也会改变。我认为这个问题与两个虚拟目录都指向操作系统中的同一个文件夹有关,但对于IIS6,我有相同的配置,没有出现问题 有没有办法解决这个问题 谢谢 其行为与IIS6不同的原因是IIS6将允许目录浏览的属性存储在虚拟目录的属性中,该属性具有每个虚拟目录的唯一条目,而在IIS7中: 由于IIS7中的两个虚拟目录共享相同的物理目录,因此

我有两个不同的虚拟目录映射到操作系统上的同一目录。在其中一个虚拟目录中,我需要禁用浏览文件夹,在另一个虚拟目录中,我需要启用它

问题是,当我改变其中一个时,另一个也会改变。我认为这个问题与两个虚拟目录都指向操作系统中的同一个文件夹有关,但对于IIS6,我有相同的配置,没有出现问题

有没有办法解决这个问题


谢谢

其行为与IIS6不同的原因是IIS6将允许目录浏览的属性存储在虚拟目录的属性中,该属性具有每个虚拟目录的唯一条目,而在IIS7中:


由于IIS7中的两个虚拟目录共享相同的物理目录,因此它们共享相同的
Web.config
文件,因此您会发现更改一个目录中的属性会导致更改出现在另一个目录中,因为它们都在修改相同的
Web.config
文件


(目前我不知道IIS7有什么好的解决方法。)

IIS 7确实使用目录中的web.config文件进行配置,但是,您也可以放弃使用web.config文件(即不使用IIS管理器工具),而不是通过IIS管理器启用目录浏览,只需编辑applicationHost.config,即可在实际需要启用浏览的唯一虚拟目录上设置目录浏览。这将允许您在一个虚拟目录中进行浏览,而不是在另一个虚拟目录中进行浏览,即使两者都指向同一个物理目录

下面是一个例子: 编辑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}替换为相关网站的网站名(如IIS管理器中所示),并将{path to virtual directory}替换为要浏览的虚拟目录的路径。 例如:



现在让我们假设在上面的示例中,imagelist是一个指向{your webroot}/pics的虚拟目录,您还有另一个名为images的虚拟目录,它也指向{your webroot}/pics。当访问者进入yoursite.com/images时,他们将看不到图像列表,但当他们进入yoursite.com/imageslist时,他们将返回一个目录列表。

有许多可能性,但我面对和解决的问题如下

  • IIS中的.NET framework与web.config中指定的不匹配。将IIS中的框架更改为创建项目的框架。(如果创建的项目或解决方案是4.5/4.0,则在您的网站高级设置下将IIS更改为4.0。)

  • 检查web.config中所有节点的标记是否已正确关闭

  • 这应该管用

    谢谢,
    Anand

    谢谢Mike的解释,我还在找,但运气不好。不客气。下面是一些要点,您现在可以向上投票(答案=)
     <location path="{website name}/{path to virtual directory}">
          <system.webServer>
               <directoryBrowse enabled="true" />
          </system.webServer>
     </location>
    
    <location path="MyWebsite/imagelist">