Http错误503服务不可用


395

一般而言,对于设置Web服务器我真的很陌生。我在Windows 8上安装了IIS 8,并且在进行一些开发时尝试在本地设置一个小站点。在IIS中,我选择“添加站点”,提供一个名称,指向一个我拥有index.html文件的位置(我尝试了其他位置,最新的位置是c:\ inetpub \ wwwroot \ test -folder),否则使用所有默认设置设置。但是,当我尝试浏览到本地主机时,我得到了

http错误503服务不可用。

我已验证池已启动,并且已在目标文件夹上赋予IIS_IUSRS完全控制权限

我到处搜索但没有找到解决我的问题的任何东西,并且EventLog或C:\ Windows \ System32 \ LogFiles \ HTTPERR文件夹中没有任何帮助

谁能告诉我怎么了?


5
您是否已检查事件查看器以获取更多信息?
Webplanet TFS Consulting,2012年

3
有用的检查清单(即使是IIS7)在这里blogs.msdn.com/b/webtopics/archive/2010/02/17/…-我怀疑您已经进行了这些检查,但可能会有所帮助
Webplanet TFS Consulting

120
原因1:HTTP错误503。如果相应的Wep应用程序的应用程序池已停止或禁用或暂停,则服务将不可用。或由于密码过期或锁定,给定的应用程序池用户身份可能无效。看到这个完美的修复:morgantechspace.com/2013/12/...
kombsh

2
对于我来说,所有日志均为空但仍为503时,这是我的通常情况。原因:1.端口冲突最常见。2. URL ACL和解决方案描述如下。
Puterdo Borato 2015年

我在IIS部署的应用程序未运行并显示503错误时遇到了相同的问题。当我检查池时,它已停止并启动可以解决问题。
Hedego '17

Answers:


448

用户身份可能已过时,尤其是如果您尝试启动已停止的应用程序池并且下一个请求再次失败时,尤其如此。

在IIS中,转到服务器下的“应用程序池”,然后为您的网站找到正确的应用程序池,然后单击它。在右侧的“高级设置”菜单上,选择“身份”并进行更改,然后输入新的用户名和密码。再次单击您的应用程序池,然后选择回收以重新启动它。

您也可以尝试在“事件查看器”中的Windows日志,“应用程序”,“详细信息”选项卡下查看错误消息。


22
这正是我更改用于W3C工作进程的身份的密码时发生的事情。谢谢
Toan Nguyen 2014年

8
我只是更改了用户密码,第二天(重新启动后)由于密码错误而失败。更改密码时,我需要更改的清单!
Brian J

2
我去了应用程序池,意识到我的网站已经被停止了。我重新启动它并po声,就像新的一样。
Jason L.

我遇到过同样的问题。每当发生此类问题时,您都应该首先查看事件查看器。要检查的拳头日志几乎总是:Windows日志->系统。该错误消息将类似于“应用程序池Foo已被禁用。Windows进程激活服务(WAS)在启动工作进程来为应用程序池提供服务时遇到了故障。” 如果身份中的用户名或密码错误,则会在前面的警告日志中提到。
杰里米·雷·布朗

我有问题是AppPool已停止。我刚刚重新启动并修复。
萨尔

97

就我而言,问题是DefaultAppPool。我将“加载用户个人资料”更改为false,现在可以使用了。但是,我不知道这是否有副作用。 在此处输入图片说明


10
这也是对我有用的,很想知道为什么!
帕特里克·麦克唐纳

2
我也遇到了这个问题。.似乎绝对不可思议的Microsft IIS具有很多模棱两可的选项,没有任何后遗症的迹象。
Pogrindis 2015年

哇!那行得通。我也很想知道为什么。
卢卡斯2015年

4
对“为什么”的一些答案 问题在这里:stackoverflow.com/questions/17149132/...
西蒙Mourier

2
@Luaan我完全同意,要解决的问题在于我和我对IIS的理解(或缺乏 IIS ),但是除非您熟练使用IIS的工作方法,否则围绕该术语存在很多歧义。发现了解决问题的原因后,我的问题得到了缓解。每天都是上学日
Pogrindis '16

95

其他答案很好。但就我而言,我正在一个Windows机器上工作,该机器已经在运行一些旧的IIS,IISExpress或任何其他网站。发生的是在系统中以某种方式保留的url ACL。因此,您可能需要检查一下。

这是转储所有URL ACL的控制台命令:

netsh http show urlacl

检查此处返回的内容,如果有任何内容与您要测试的url相匹配,这是删除一个URL acl的命令(例如):

netsh http delete urlacl url=http://localhost:2018/

(请注意,如果与原始问题无关,请注意此处的操作)


3
这对我来说很棒!就我而言,我正在使用RavenDB,并在使用IIS应用程序之前尝试使用控制台应用程序。使用控制台应用程序后,IIS应用程序将无法使用!原来是因为保留了URL。我刚刚删除了ACL,一切都很好!
N1njaB0b

1
好一个 我以前有一个网站解决方案绑定到我尝试使用的端口。
RJ Lohan

谢谢!这对我也是如此-我们已经使用WAP设置了Skype for Business,但发现WAP不稳定并且会频繁停止并移至ARR 3.0。端口443上留下了一些旧的URL ACL,用于lync和lyncdiscover,它们妨碍了IIS并导致503错误,而不是IIS为页面提供服务。删除旧的ACL可以解决此问题。
drew010

1
这是唯一对我有效的解决方案。谢谢。
Quannt

1
这对我有用!我之前运行过一些自托管服务,并做了一些工作将其绑定到localhost:443。我还必须生成一个自我证书,并将其绑定到443。不知何故,即使我删除了证书,也删除了SSL证书,原因如下:netsh http delete sslcert ipport=127.0.0.1:443我还必须运行:netsh http delete urlacl url=https://+:443/
Ninja

46

检查您的应用程序各自的应用程序框架池-它可能已停止。如果是,请启动并再次检查。

如果您仍然遇到问题,还可以签出“事件查看器”以找到该错误的原因,以便进行更多的故障排除。


是的,事件查看器是您的朋友!我发现此错误发生在2016年9月Windows 10周年更新之后-它以某种方式破坏了IIS Rewrite 2 DLL模块。在“程序和功能”中修复它,然后重新启动应用程序池,为我修复了它。
詹姆斯·麦考马克

31

如果它可以帮助任何人,这可能是可笑的,但对我而言并不明显,因为应用程序池没有启动。我只是以为启动网站或创建应用程序池就可以启动。实际上,我什至不知道您必须启动应用程序池...


7
那是我的问题。在这里不笑。
贾里德海滩

4
我用我的身份设置应用程序池(Windows登录)。今天早上,电脑要求我更改密码。然后我运行iis,这种情况发生了。然后,我检查应用程序池,并更改身份。输入新密码,一切正常。
2016年

25

应用程序池已停止

就我而言,应用程序池已停止。启动它可以解决问题。

我的网站托管在Arvixe上。由于我有基于成员资格的应用程序,并且在上传文件时发生了一些不好的情况,因此可能发生了错误问题。


我的情况也一样。
Uthistran Selvaraj

23

如果应用程序池在某些用户身份下运行,请再次进入更新用户名密码的高级设置,它对我有用。


18

如果应用程序池在启动后立即停止,并且事件日志显示:

应用程序池“ APP_POOL_NAME”的工作进程遇到错误“无法读取配置文件”,试图从文件“ \?\”(行号“ 0”)读取配置数据。数据字段包含错误代码。

...您可能遇到了Windows 10 Fall Creators Update和/或.Net Framework v4.7.1中显然引入的错误。可以通过以下变通办法解决此问题,这些变通办法是从以下答案中解决相关问题的:无法读取配置文件'试图从文件'\\?\ <EMPTY>'的行号'0'中读取配置数据

  1. 转到安装IIS的驱动器,例如。 C:\inetpub\temp\appPools\
  2. 删除与您的应用程序池同名的目录(或虚拟目录)。
  3. 再次回收/启动您的应用程序池。

我已通过在dotnet GitHub存储库上创建以下问题向Microsoft报告了此错误:安装4.7.1之后,IIS AppPool停止并显示“无法读取配置文件”

编辑

Microsoft回应说,这是Fall Creators Update的Windows设置过程的一个已知问题,并记录在KB 4050891中,Web应用程序在Windows 10版本1709(Fall Creators Update)上返回HTTP错误503和WAS事件5189。该文章提供了以下替代方法,与上面的类似。但是,请注意,它将回收所有应用程序池,无论它们是否受此问题影响。

  1. 使用“以管理员身份运行”选项打开Windows PowerShell窗口。
  2. 运行以下命令:
    • Stop-Service -Force WAS
    • Remove-Item -Recurse -Force C:\inetpub\temp\appPools\*
    • Start-Service W3SVC

这是最佳答案,应将其标记为答案。
Eriawan Kusumawardhono


10

首先在系统或应用程序日志下查看事件查看器。

在我的情况下,问题是由于无法读取应用程序池的配置文件而无法为其启动工作进程-我添加了一个额外的“。”。在其名称的末尾。


9

对于Windows Server 2012 R2,我这样做:IIS> App..Pools(池)((带有黑色的“ stop”正方形)>右键单击它> start


8

您的域可能要求用于运行AppPool的帐户具有批量登录权限。在这种情况下,您将看到相同的错误消息。可以通过在事件查看器中查看系统事件来判断是否是这种情况。应该发生一个事件,说明与应用程序池一起使用的帐户具有“错误的密码或没有批量登录权限”。

这就是开发人员经常在其开发计算机上使用IIS Express的原因,因为它通过了批处理登录权限问题。


8

在我的情况下,Pool使用自定义身份(帐户和密码)。密码过期并重新加载后,错误发生了。我只是更正了身份中的密码


1
在应用程序池中的用户上更改了密码
phil soady 2015年

我只是遇到了同样的问题:)
krolik

2
这对我有帮助。选择池,然后单击高级设置->流程模型->身份->单击用户名以查看(...)单击设置按钮并更新密码。
Vignesh Chinnaiyan

7

我遇到了同样的问题,但这是与实际网站设置有关的问题 IIS

选择Advanced Settings...您的站点/应用程序,然后查看Enabled Protocols值。对于任何共振,该值对于我的网站都是空白,并导致以下错误:

http错误503服务不可用。

解决方法是添加http并选择OK。该站点随后又恢复了功能。


1
+1:宾果!就我而言,我开始需要SSL,因此我的解决方法是http, https在同一框中添加。谢谢!
Jim G.

是! 显然有人将协议更改为htt4p。不知道那是怎么发生的,但是它是在我的团队无法管理的本地环境中。超级令人沮丧。
StriplingWarrior

6

就我而言,我创建了一个新的应用程序池,只是忘了启动它。


有时我也有类似情况。我不确定为什么,但是应用程序池停止了。右键单击->开始通常可以解决我的问题。
米尔顿

AppPool ... IIS真是一大堆。阿帕奇随时随地为您提供帮助
Gianluca Ghettini

5

检查事件查看器-Windows-应用程序。如果从IIS-W3SVC-WP出现红色错误行,并且消息类似于模块DLL C:\ Windows \ system32 \ inetsrv \ rewrite.dll无法加载。数据是错误的。那么您将缺少某些Windows安装程序功能。

在Windows Server 2012中,转到“服务器管理器”,“添加角色和功能”,“ Web服务器(IIS)”并添加匹配的功能。通常,大多数“应用程序开发”部分都已安装。这是IIS功能及其相关DLL的完整列表有助于诊断。

经过几次迭代之后,我结束了上面关于“ rewrite.dll”的错误消息。这导致直接下载和安装Microsoft URL Rewrite工具。最终,所有网站都栩栩如生。


1
同样的情况!ReWriteIIS中缺少模块。正如您提到的,从这里
Ali Kashanchi 2015年

4
我安装了URL Rewrite 2.0模块。但是,我发现我需要修复“程序和功能”(Windows 10)中的安装。
bentsai 2015年

5

或者,如果当前解决方案均无效,请在您的网站目录中查找名为的文件app_offline.htm。这基本上告诉IIS您的站点不可用,而是显示此页面。

要对其进行修复,请删除它或将其重命名为app_offline.htm.bak

就我而言,我在向同事展示如何使用它来防止临时访问该网站的流量时添加了它,然后忘记了我在盒子上这样做了。叹。


1
这个答案今天挽救了我的IIS
YChi Lu

4

我按照上面的“ 解决HTTP错误503”链接进行操作。就我而言,每次我右键单击svc文件并选择“浏览”时,我的应用程序池都会停止。

我按照以下步骤解决了应用程序池停止的问题

我正在使用Windows Server 2008 R2。

在我的IIS管理器应用程序池中,右键单击我感兴趣的应用程序池,然后单击“高级设置”。这将打开“高级设置”弹出窗口。

在“过程模型”部分下的“身份”中,单击“应用程序池身份”弹出窗口中的“设置”按钮。这将打开“设置凭据”弹出窗口,我在其中提供了用户名,密码和确认密码,然后单击“确定”。

现在,当我右键单击svc文件时,它将在IE浏览器中打开。


4

如果您安装了IIS URL Rewriting,则可能与此有关。Windows 10更新后,我遇到了问题。

这个StackOverflow帖子对我有所帮助。

转到Windows Control Panel> Programs and Features> IIS URL Rewrite Module 2> Repair


这就是答案。对站点的请求停止了启动的应用程序池,因为在重大更新后重定向模块已“损坏”。谢谢。
SpaceBison

4

就我而言,“我的默认应用程序池”处于脱机状态,以解决此问题,我检查了位于C:\ Windows \ System32 \ LogFile \ HTTPERR的IIS日志,向下滚动到最新的错误日志,这将向您显示IIS的问题,如果任何我的错误是“ 503 1 AppOffline DefaultPool”

解决方案打开IIS管理器,-单击“应用程序池”,这将在您右边列出所有应用程序池。-检查托管您的api或站点的应用程序池上是否有停止标志,如果是,请右键单击该应用程序池,然后单击启动。_再次尝试从客户端访问您的服务这对我有用。向@kombsh大喊


3

我们的服务器在星期天下午的磁盘空间不足,导致应用程序突然失败并返回HTTP错误502。日志为空,因此它必须是在IIS甚至没有执行任何操作之前发生的事情。

快速查看事件查看器(WIN+R > eventvwr)发现了问题。 在此处输入图片说明

过滤掉WAS的“系统”和“应用程序”窗口的输出是个好主意,因为它在那里可能很冗长。

该应用程序依赖于另一个已禁用的应用程序。因此,请记住,如果某个应用程序的某个依赖进程已关闭,则该应用程序可能会间接关闭。我们只是重新启用了.NET应用程序池,而其他应用程序又重新开始正常运行。




2

经过一番尝试和错误后,我发现该应用程序池已配置为使用我的域帐户作为标识,并且我记得我之前更改了我的域帐户shorty的密码。重置应用程序池的标识(使用我的新密码)解决了该问题,可以重新启动应用程序池而不会出现任何问题。


2

就我而言,问题是另一个应用程序正在使用我绑定到我的网站的端口。

我通过从命令行运行以下命令找到了它,该命令列出了所有侦听端口和涉及的可执行文件:

netstat -b

2

我今天有同样的错误。问题是我最近更改了域密码,因此必须在每个应用程序池的“高级设置”>“过程模型”>“身份凭证”中进行更新。


2

将Windows 7升级到Windows 10后,与IIS Express 10.0相同。解决方案:转到IIS并启用所有禁用的网站,然后重新安装ASP.NET Core。


2

如果您具有McAfee HIPS,并且在事件查看器应用程序日志中看到以下错误:

无法加载模块DLL C:\ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll。
数据是错误的。

然后,在我的案例中,McAfee.com上的变通办法解决了该问题。

从页面引用:

  1. 单击开始,运行,键入资源管理器,然后单击确定。
  2. 导航至:%windir%\ system32 \ inetsrv \ config
  3. 以管理员身份打开文件applicationHost.config,以在记事本中进行编辑。
  4. 编辑<globalModules>部分,然后删除以下行:
    <add name =“ MfeEngine” image =“%windir%\ System32 \ inetsrv \ HipIISEngineStub.dll” />

  5. 编辑<modules>部分并删除以下行:
    <add name =“ MfeEngine” />

  6. 完成编辑applicationHost.config文件后,保存文件,然后使用iisreset或重新启动系统来重新启动IIS服务器。

2

还要检查地址栏,并确保页面在正确的位置。

可以返回此错误,而不是404(找不到页面)。就我而言,这是页面上的错误链接,没有包含子文件夹。


2

我在最长的时间内遇到过相同的问题,我认为我的代码存在问题。原来,在IIS服务器中,该特定项目的应用程序池已停止。我重新打开它,就解决了这个问题。错误503最有可能与应用程序池有关

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.