IIS 开始提供 404 服务(工作一段时间!)

IIS 开始提供 404 服务(工作一段时间!)

这是刚刚开始发生的一件有趣的事情。我最近做出的改变:

  • 更新网站(不是重大更新,小代码更改/错误修复)
  • 将 URL 重写规则添加到 301 论坛到不同的域名

该网站已经很多周(甚至几个月)无人动静了。

全部重写的 URL 似乎受到了影响。URL 工作正常了一段时间,然后突然间我们开始得到:

404 目录未找到

在这些 URL 上。我无论如何也想不出这是为什么,以及是什么原因造成的。事件查看器似乎没有显示任何相关信息。

重新启动服务器可以暂时修复此问题,重新启动 IIS 也可以。回收应用程序池有时暂时起作用。

服务器
Windows Server 2008 R2
最新更新
网站目标框架 4.5.2
IIS 6.1 Build 7601 SP1
IIS 应用程序池框架 4.0
单一应用程序应用程序池(不共享)

有谁知道是什么原因造成的,或者如何进一步调查?这可能会对我们造成严重伤害。任何帮助都非常感谢。

更多信息

让它返回详细的错误信息,并返回以下内容:

Detailed Error Information
Module  IIS Web Core
Notification    MapRequestHandler
Handler StaticFile
Error Code  0x80070002
Requested URL   https://www.scirra.com:443/tutorials/top
Physical Path   C:\inetpub\wwwroot\Scirra\tutorials\top
Logon Method    Anonymous
Logon User  Anonymous

显然请求的物理路径不存在。

以下是日志文件中的一个示例,其中2似乎ERROR_FILE_NOT_FOUND

2018-06-02 17:26:44 108.xx.xx.xx GET /store - 443 - 172.xx.xx.xx Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/66.0.3359.181+Safari/537.36 404 0 2 280

答案1

IIS 6 似乎偶尔会出现此问题,尤其是 4.0 框架。通常有效的修复方法是:

只需添加一个 DWORD 注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls”,其值为“0”,然后重新启动 IIS 即可解决问题。

原因是 Windows 更新似乎会将该注册表项删除。

厚颜无耻地从以下网址抓取:

https://blogs.msdn.microsoft.com/tmarq/2010/06/18/how-to-disable-the-asp-net-v4-0-extensionless-url-feature-on-iis-6-0/

相关内容