Windows 8.1/Windows 10中断我的 ASP.NET/IIS: “服务不可用”

随着 Windows 8.1最终发布到 MSDN/Technet 上,今天我用 Win 8.1 RTM 进行了原地升级,在运行 ASP.NET 应用程序时遇到了以下问题:

服务中断

HTTP 错误503。服务不可用。

  • AppPool 已经死亡,并显示 Stopped的状态

  • IIS 日志什么都没有

  • 在包含此错误的 Windows 应用程序日志中有一条线索

    The Module DLL C:\WINDOWS\system32\inetsrv\rewrite.dll failed to load. The data is the error.

我如何恢复我的 IIS 使它再次工作?

32932 次浏览

It looks like a simple uninstall and re-install of the rewrite module will do the trick.

Edit: As others have said - try a repair first - if it works then that should be faster.

It doesn't look like the Microsoft Web Platform Installer is able to uninstall it so just go to Programs and Features to uninstall it.

You'll find it listed as IIS URL Rewrite Module 2 and just click the Uninstall button on top.

Then reinstall it from here:

http://www.iis.net/downloads/microsoft/url-rewrite

Make sure your App Pool is started - or just restart IIS and it should all work again.


Edit: 8/30/16 : A similar but unrelated error can occur if you have the 'new' .NET core installed and update to Win 10 Anniversary edition. See here: https://github.com/aspnet/Home/issues/1583 - Running a repair on VS 2015 Tooling Preview should fix it. Wanted to add it here since the errors are very similar to this answer.

Don't need to uninstall. Just do a Repair instead, and it will works.

I came across similar symptoms after changing my domain password. I had to also reset my password in my (hard coded!) App Pool settings on my dev box.

I just ran in to this issue after an update. All of the app pools where stopped! Starting them resolved the issue.

I got this Event Log error after updating Win8.1 to Win10. To fix, go to the Control Panel -> Programs and Features, locate IIS URL Rewrite Module 2, right click and select Repair (it's quick). Next, restart your stopped AppPool(s). Should be OK now.

No need to uninstall nor reinstall.

Gary Davis

The Repair worked for me after updating to W10 Insider Preview 160826-1902

I had a similar issue with "httpplatformhandler.dll failed to load". Again the solution was to download the appropriate httpplatformhandler install msi from http://www.iis.net/downloads/microsoft/httpplatformhandler and then run a repair.

I struggled with similar issues last night.

It started out with a complaint about missing redirect.dll. After installing IIS' Redirect feature, that log message disappeared and all I was left with was a bunch of error messages from WAS. It tried starting my application pool five times until giving up.

A listener channel for protocol 'http' in worker process '120' serving application pool 'my app pool' reported a listener channel failure. The data field contains the error number.

The error code was "8007007E" (File not found according to google).

I then installed ProcMon from sysinternals.com and every time the w3wp process complained about "NAME NOT FOUND" right before terminating, I googled and installed the corresponding IIS feature. I repeated this until I had installed them all and got everything working again.

Installing everything is not a good solution, but I do not have time to investigate deeper right now.

For some weird reasons, the only solution for me was to install previous version of the module, from https://www.microsoft.com/en-us/download/details.aspx?id=7435

I encountered the same problem in Windows Server 2012 R2. After I update Windows Updates to newest, it works.