【问题标题】:Error 404 on /bin browsing/bin 浏览时出现错误 404
【发布时间】:2012-07-04 07:37:30
【问题描述】:

我在 Windows Server 2008 R2 上运行 IIS 7.5。
我在浏览“/bin”文件夹时收到404: file not found 错误。我了解这是 Microsoft 的安全政策。

我尝试执行here 中所写的操作,但并没有解决问题。有什么想法吗?

编辑:
应该注意的是,我没有安全问题。我运行 IIS 以在专用网络中进行目录浏览。最终我需要对其进行爬网和索引。问题是“/bin”和“/AppConfig”下的页面因为404错误没有被爬取。

我只需要解决这个问题。同样,这里没有相关的安全问题。

【问题讨论】:

  • Windows 2008 R2 上的 IIS 6 是不可能的。 W2008 R2 随附 IIS 7.5。在所有情况下,浏览到 bin 都是不安全的。你为什么要这样做?
  • 制作一个 aspx 页面,该页面可以安全地读取并显示此 bin,并且仅在登录用户上...
  • 史蒂夫,你是对的,我的错。
  • @user1251654:因此您提供的链接不再有效,因为它指向 W2K3 kb
  • Aristos,我不明白你的解决方案。我不能更改一些配置以允许目录浏览到此文件夹吗?

标签: asp.net windows iis http-status-code-404 bin-folder


【解决方案1】:

Bin 文件夹并不是开发人员放置网页的地方。

在 IIS 7.5 中您可以配置

  1. 打开 Internet 信息服务 (IIS) 管理器
  2. 在“连接”窗格中,转到连接、站点、应用程序或目录 您要修改您的请求过滤设置。
  3. 在主页窗格中,双击请求过滤。
  4. 在请求过滤窗格中,点击隐藏段标签
  5. 选择要显示的相对路径(BIN 文件夹),然后单击“操作”窗格中的“删除”。

同样可以通过 web.config 完成

<configuration>
  <system.webServer>
   <security>
     <requestFiltering>
        <hiddenSegments applyToWebDAV="false">
           <remove segment="Bin" />
        </hiddenSegments>
     </requestFiltering>
   </security>
  </system.webServer>
</configuration>

无论如何,为了避免在开发服务器和任何部署服务器上出现问题,我认为最简单的解决方案是将页面移动到另一个文件夹。


阅读here:

ASP.NET recognizes certain folder names that you can use   
for specific types of content.  
The following table lists the reserved folder names and the type   
of files that the folders typically contain.

Note
The content of application folders, except for the App_Themes folder,
is not served in response to Web requests,
but it can be accessed from application code.
  • App_Browsers 包含浏览器定义(.browser 文件) ASP.NET 用于识别单个浏览器并确定它们的 能力。
  • App_Code 包含源码 共享类和业务对象的代码
  • App_Data 包含应用程序数据文件 包括 .mdf 数据库文件、XML 文件和其他数据存储文件。
  • App_GlobalResources 包含已编译的资源(.resx 和 .resources 文件) 进入具有全局范围的程序集。
  • App_LocalResources 包含资源(.resx 和 .resources 文件)与特定页面关联,用户 应用程序中的控件或母版页
  • App_Themes 包含一个集合 文件(.skin 和 .css 文件,以及图像文件和通用文件) 资源)定义 ASP.NET 网页的外观和 控件。
  • App_WebReferences 包含参考合同文件(.wsdl 文件), 模式(.xsd 文件)和发现文档文件(.disco 和 .discomap 文件),可让您创建 Web 参考以用于 申请。
  • Bin 包含控件、组件的编译程序集(.dll 文件), 或您想在应用程序中引用的其他代码。

【讨论】:

  • 我们在 IIS 和插件和主题上托管 WordPress 站点,例如使用 bin 文件夹存储图像和其他资产,这破坏了样式和徽标。我们从该特定站点的文件夹列表中删除了 bin,它运行良好。 Windows 2012,IIS 8。
  • @ahwm 是的,你可以做到的。但 Bin 文件夹不适用于此目的。这就是默认情况下此文件夹受保护的原因。现在可以向用户提供一些私人内容。
  • 是的,我完全清楚这一点。这就是我为那个网站仅启用bin文件夹的原因。许多基于 PHP 的应用程序倾向于以这种方式使用 bin 文件夹,即使它们实际上并不应该这样做(在 *nix 服务器上无关紧要)。
  • 另外,我应该指出,IIS 中的 Web 应用程序只是托管一个 WordPress 站点。网站根目录中没有 ASP.NET 应用程序或任何东西,也没有 bin 文件夹。它嵌套在 site.com/wp-content/themes/theme/bin/ 中,在这种情况下,这个解决方案应该是完全可以接受的。
【解决方案2】:
  • 通过网络共享访问 \bin 文件夹,例如\\myserver\mysite\bin
  • 编写 ashx 处理程序或 asmx Web 服务,它将为您扫描 \bin 文件夹并为您返回结果,例如Directory.GetFiles(Server.MapPath("~\bin"))

【讨论】:

  • 您确定没有办法在 IIS 中禁用此安全配置吗?
  • @user1251654:我不知道这种方式,谷歌也没有提供任何东西,老实说我怀疑这种方式是否存在。
猜你喜欢
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2018-08-28
  • 2019-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多