【问题标题】:ASP.NET 4.6.1 Web Forms page 404 IssueASP.NET 4.6.1 Web 表单页面 404 问题
【发布时间】:2017-05-23 18:25:20
【问题描述】:

我正在开发一个经典的 ASP 网站项目,并尝试添加一个 Web 表单,该表单将从用户那里收集数据并将该数据发布到 API。我的网络应用程序位于 wwwroot\subdir\myapp,我的目标是 web.config 中的 .NET 框架 4.6.1。当我在浏览器(mydomain.com\subdir\myapp 或 mydomain.com\subdir\myapp\Default.aspx)中导航到该站点时,它给了我一个 404 错误。如果我再次重新加载,我会收到第二个 404 错误。但是,在第三次加载时,网站会在浏览器控制台中加载所有资产 (JavaScript/HTML/CSS),而不会出现任何错误。

我检查了 Web 服务器 (IIS 8.5) 日志,前两次加载返回 404.19 错误。根据 [1],此错误表明 IIS 由于过滤规则而拒绝该页面的请求。但是,如果是这样,为什么它会在第三个请求上加载?

[1]https://support.microsoft.com/en-us/help/943891/the-http-status-code-in-iis-7.0,-iis-7.5,-and-iis-8.0

【问题讨论】:

    标签: c# asp.net iis webforms web-config


    【解决方案1】:

    我发现了这个问题。该 URL 正在逐个字符地进行解析,并与与 SQL 注入相关的关键字列表进行完全匹配的比较。导致我的错误的词是“更新”。通过在 IIS 管理器中为 .aspx 请求设置失败请求跟踪规则,我能够找出解决方案。

    【讨论】:

      【解决方案2】:

      检查网站目录的安全属性。应用程序池的用户应该有读取权限。 (默认为IUSR)。

      【讨论】:

      • 我检查了新 Web 表单目录和网站根目录的安全属性。我有两个组,IUSR 和 IIS_IUSRS,它们都具有对 wwwroot 和 wwwroot\subdir\myapp 的读取权限。
      • 你检查过stackoverflow.com/questions/28276969/…吗?也许查询字符串或友好名称会有所不同​。还要检查 IIS 网站配置中的过滤规则。
      猜你喜欢
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2013-05-29
      • 1970-01-01
      • 2017-01-22
      • 2016-02-05
      相关资源
      最近更新 更多