Http错误503服务不可用

时间:2012-11-10 14:33:24

标签: asp.net iis http-error

我一般都很擅长设置网络服务器。我在Windows 8上安装了IIS 8,我正在尝试在本地设置一个小站点,同时进行一些开发。在IIS中我选择添加站点,给出一个名称,指向我有一个index.html文件的位置(我尝试了不同的位置,最新的 c:\ inetpub \ wwwroot \ test - 文件夹),否则使用所有默认设置。但是,当我尝试浏览localhost时,我得到了

  

HTTP错误503.该服务不可用。

我已经验证了游泳池已启动,并且我已在目标文件夹上提供 IIS_IUSRS 完全控制

我一直在搜索但没有找到解决我问题的任何内容,而且在EventLog或 C:\ Windows \ System32 \ LogFiles \ HTTPERR 文件夹中没有任何帮助

有谁能告诉我出了什么问题?

48 个答案:

答案 0 :(得分:406)

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

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

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

答案 1 :(得分:93)

在我的情况下,问题是DefaultAppPool。我改变了#34;加载用户配置文件"假的,现在它起作用了。但是,我不知道这是否有副作用。 enter image description here

答案 2 :(得分:84)

其他答案都很好。但就我而言,我正在开发一个已运行旧IIS,IISExpress或任何其他网站的Windows机器。发生了什么是在系统中以某种方式保留的URL。所以,你可能想检查一下。

以下是转储所有URL acls的控制台命令:

netsh http show urlacl

检查此处返回的内容,如果有任何内容与您正在测试的网址相匹配,则此处是删除一个网址的命令(例如):

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

(请注意,如果与原始问题无关,请仔细注意您在此处所做的事情)

答案 3 :(得分:41)

检查应用程序的相应应用程序框架池 - 可以停止它。如果是,请启动它并再次检查。

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

答案 4 :(得分:28)

如果它可以帮助任何人,这可能是可笑的,但对我来说并不明显,是应用程序池没有启动。我只是假设在启动网站或创建应用程序池时,它会启动。事实上,我甚至不知道你必须启动应用程序池......

答案 5 :(得分:25)

Application Pool Stopped

在我的情况下,应用程序池已停止。启动它解决了问题。

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

答案 6 :(得分:22)

如果App池在某个用户标识下运行,请再次转到更新用户名密码的高级设置, 它对我有用。

答案 7 :(得分:11)

我通过删除与IIS中的app目录匹配的URL保留来解决此问题。我有一个类似(绝对不一样)的问题,如本文所述:

A Not So Common Root Cause for 503 Service Unavailable

答案 8 :(得分:9)

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

在我的情况下,问题是没有为App Pool启动任何工作进程,因为它的配置文件无法读取 - 我已经包含了一个额外的'。'在它的名字的末尾。

答案 9 :(得分:7)

在我的情况下,Pool使用自定义标识(帐户和密码)。密码过期并重新加载后,错误已经出现。我只需更正身份中的密码

答案 10 :(得分:6)

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

为您的网站/应用选择Advanced Settings...,然后查看Enabled Protocols值。无论如何,我的网站的值为空白,并导致以下错误:

  

HTTP错误503.该服务不可用。

修复方法是添加http并选择OK。该网站再次正常运作。

答案 11 :(得分:6)

就我而言,我创建了一个新的App Pool,只是忘了启动它。

答案 12 :(得分:5)

检查事件查看器 - Windows - 应用程序。如果存在由 IIS-W3SVC-WP 生成的红色错误行,并且消息类似于模块DLL C:\ Windows \ system32 \ inetsrv \ rewrite.dll无法加载。数据是错误。然后您缺少一些Windows安装程序功能。

在Windows Server 2012中,转到“服务器管理器”,“添加角色和功能”,“Web服务器(IIS)”并添加匹配功能。通常,大多数应用程序开发部分都已安装。以下是IIS features and their associated DLL的完整清单,以帮助诊断。

经过几次迭代之后,我结束了上面关于“rewrite.dll”的错误消息。这导致了direct download and install of Microsoft URL Rewrite tool。最后,所有网站都栩栩如生。

答案 13 :(得分:5)

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

这就是开发人员经常在他们的开发机器上使用IIS Express的原因,因为它通过了批量登录权限问题。

答案 14 :(得分:4)

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

答案 15 :(得分:4)

对于我来说,我的默认应用程序池处于脱机状态,要解决此问题,我检查了位于C:\ Windows \ System32 \ LogFile \ HTTPERR的IIS日志。 向下滚动到最新的错误日志,这将显示IIS的问题(如果有) 我的错误是“ 503 1 AppOffline DefaultPool”

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

答案 16 :(得分:4)

我按照上面的 解决HTTP错误503 链接。在我的情况下,每当我右键单击我的svc文件并选择"浏览"时,我的应用程序池就会停止。

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

我使用的是Windows Server 2008 R2。

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

在Process Model部分下,单击Identity并单击Application Pool Identity弹出窗口中的Set按钮。这将打开设置凭据弹出窗口,其中我提供了用户名,密码和确认密码,然后单击确定。

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

答案 17 :(得分:4)

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

This StackOverflow post helped me.

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

答案 18 :(得分:3)

我们的服务器在周日下午耗尽了磁盘空间,导致应用程序突然失败并返回HTTP错误502.日志是空的,所以它必须是在IIS甚至做任何事情之前发生的事情。

快速查看事件查看器(WIN+R > eventvwr)暴露了该问题。 enter image description here

将系统和应用程序窗口的输出过滤到WAS是一个好主意,因为它可以在那里变得非常详细。

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

答案 19 :(得分:3)

对于Windows Server 2012 R2,我执行了以下操作:IIS> App..Pools>(具有黑色的“停止”正方形)>右键单击它>开始

答案 20 :(得分:3)

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

要修复此问题,请将其删除或重命名为app_offline.htm.bak

在我的情况下,我添加了它,同时向同事展示如何使用它来暂时阻止流量到网站,然后忘记我在我的盒子上做了那个。叹息。

答案 21 :(得分:2)

同时检查地址栏并确保页面位于正确的位置。

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

答案 22 :(得分:2)

我今天遇到了同样的错误。问题是我最近更改了域密码,所以我必须在每个应用程序池中更新它,在高级设置>过程模型>身份证明。

答案 23 :(得分:2)

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

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

netstat -b

答案 24 :(得分:2)

经过一些尝试和错误我发现,应用程序池配置为使用我的域帐户作为身份,我记得我以前更改了我的域帐户的密码。重置应用程序池的标识(使用我的新密码)修复了问题,可以重新启动应用程序池而不会出现任何问题。

答案 25 :(得分:2)

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

  

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

然后这个workaround on McAfee.com解决了我的问题。

从页面引用:

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

  8.   
  9. 编辑< modules>部分并删除以下行:   
    < add name =" MfeEngine" />

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

答案 26 :(得分:2)

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

答案 27 :(得分:1)

我遇到了 503 错误并在 IIS 中检查了该站点的相关应用程序池。应用程序池处于“已停止”模式。所以我刚刚启动了应用程序池。然后我的网站开始工作了。

答案 28 :(得分:1)

如果.NET框架和/或ASP.NET发生任何最近的安装或更新,也可能发生这种情况。如果您不确定最近发生了什么,并且所有应用程序都使用ASP.NET版本4,您可以尝试通过在管理员模式下在命令提示符下运行以下命令来重置它们。

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
aspnet_regiis -i

这确保安装或重新安装ASP.NET 4并更新现有应用程序以使用应用程序池的ASP.NET 4版本。它更新IIS元数据库中的IIS Classic和集成模式处理程序以及脚本映射。它还重新创建ASP.NET v4.0和ASP.NET v4.0 Classic应用程序池,并将.NET框架4设置为DefaultAppPool和Classic .NET应用程序池。

答案 29 :(得分:1)

实际上,在我的情况下,https://localhost在工作,但是http://localhost给出了HTTP 503内部服务器错误。在IIS中将默认网站的绑定更改为使用主机名localhost而不是空白的主机名。

IIS Site bindings for HTTP绑定http的名称

答案 30 :(得分:1)

我将端口从80更改为8080,这就是发生此错误的原因。我在搜索栏中写了localhost /,然后发生此错误。通过在搜索中写入localhost:8080 /,然后打开本地主机,可以解决我的问题。

答案 31 :(得分:1)

您也可以尝试以下方法。

右键单击该站点并选择“基本设置...” 单击“连接为...” 单击特定用户并提供新凭据。

现在应该可以了。

答案 32 :(得分:1)

在我们的Intranet上的服务器上发生了这种情况。在浏览博客帖子和Windows日志之后,结果发现2015年圣诞节前几天(与Windows Update有关?)我的网站应用程序池想要在 c:\ inetpub \ temp \文件夹中创建一个配置文件appPools ,但对该文件夹的访问受到限制。这导致应用程序池被禁用。

在此临时文件夹中向所有人添加完全控制后,我重新启动 Windows进程激活服务,所有内容再次上线。

如果我更优雅一点,它可能足以让AppPool用户完全控制该文件夹,但我似乎永远不会记得应用程序池名称和应用程序池用户如何相互关联..

答案 33 :(得分:0)

我在使用Kentico作为卫星CMS的.Net MVC应用程序时遇到此错误。问题是它需要适用于我的应用程序所在URL的许可证。它基本上停止了应用程序并导致IIS只返回此503 - 服务不可用的消息。我最终在Kentico的事件日志中找到了错误详细信息(作为警告)。您可以在Kentico的客户端门户网站https://client.kentico.com/中创建新许可证或查找许可证详细信息。

答案 34 :(得分:0)

安装Skype时出现此错误。因为我的网站使用端口80,Skype也使用相同的端口。

请参阅this

答案 35 :(得分:0)

在我们的示例中,没有记录任何内容(除了503的HTTP错误日志条目),但IIS中的Web应用程序的Enabled Protocols值有一个错字!而不是http,https,协议之间有一段时间:http.https

答案 36 :(得分:0)

由于服务器计算机上的内存不足,我遇到了同样的问题 实际上有1/16 GB的内存可用,但是在卸载了几个未使用的应用程序(它们不拥有端口80)后,IIS自动开始正常工作。

答案 37 :(得分:0)

在IIS中,转到“服务器”下的“应用程序池”,然后为您的网站找到正确的应用程序池,并单击它。在右侧的“高级设置”菜单中,在“常规”下,启用“启用32位应用程序”= true。

这对我有用了!

答案 38 :(得分:0)

在我的情况下,与域关联的应用程序池与与各个站点/应用程序关联的应用程序池不匹配。我不确定这是怎么发生的,但一旦域应用程序池得到纠正,问题就解决了。

答案 39 :(得分:0)

我知道这是以不同方式回答的,但在我的情况下,我注意到即使在手动重启后应用程序池也会自动停止。然而,当我更改所用帐户的密码并在几天前更改时,它可以正常工作而无需任何其他更改。 尝试相同。

答案 40 :(得分:0)

我在安装url重写模块后看到此错误,我尝试从以下位置安装它的先前版本:   https://www.microsoft.com/en-us/download/details.aspx?id=7435 它解决了我的错误

答案 41 :(得分:0)

在清理开发机上的IIS时遇到了这个问题,我以某种方式为我无法清除的真实开发网络的子文件夹创建了一个虚拟文件夹,并且正在产生冲突。

要清除它,我必须使用

C:\Windows\System32\inetsrv\appcmd.exe list vdir

然后使用分别删除有问题的虚拟目录

C:\Windows\System32\inetsrv\appcmd.exe delete app /app.name:"Default Web Site"/{name of virtual directory}

答案 42 :(得分:0)

对我来说,DefaultAppPool无法启动,事件日志告诉我C:\Windows\System32\inetsrv\redirect.dll无法加载。

文件丢失了。原因是Windows功能" HTTP重定向"没安装。检查该功能是否为Internet Information Services\World Wide Web Services\Common HTTP Features\HTTP Redirection下的票证。如果你现在刚安装它,就不需要重启。

答案 43 :(得分:0)

enter image description here

对我来说,解决方案是将“启用32位应用程序”更改为“假”


没有一个答案对我有用。因此,我想分享经过数小时的研究后发现的结果。

请继续从事件日志中看到以下消息:The Module DLL C:\Windows\system32\RpcProxy\RpcProxy.dll failed to load. The data is the error.证明dll是64位的,无法加载到32位的进程中。

答案 44 :(得分:0)

我遇到了同样的问题,发现它是由在C:\ Users中创建用户配置文件的权限问题引起的。我将ApplicationPoolIdentity的完全权限授予C:\ Users文件夹,启动了网站,一切正常,配置文件必须已正确创建,并且我的网站正常工作。然后,我从ApplicationPoolIdentity中删除了对C:\ Users的访问权限。

Site wont start on local using ApplicationPoolIdentity, only when using NetworkService: "HTTP Error 503. The service is unavailable."

答案 45 :(得分:0)

就我而言,由于公司政策,我不得不更改我的网络用户密码。因此,您需要编辑您的 AppPool: 单击应用程序池。选择您的池,“高级设置...”转到“流程模型”,单击“身份”,然后单击“特定用户”并提供新凭据。

答案 46 :(得分:0)

这可能是因为与数据库的连接数。我有这样的情况,所以写了一个反构造函数并杀死了db open connection并解决了。

答案 47 :(得分:0)

[2021 年 7 月 - 更新] 我已经尝试了上述所有这些答案,但它不起作用,然后我在“程序和功能”中重新安装了 IIS 并且它起作用了。

我知道所有设置都没有了,但它有效。 (请阅读本文)

  1. 按 Windows + X
  2. 选择“应用和功能”
  3. 选择“程序和功能”
  4. 选择“打开或关闭 Windows 功能”
  5. 取消选中“Internet 信息服务”复选框
  6. 重启电脑
  7. 重新安装(再次选中“Internet 信息服务”复选框)
  8. 然后测试新的!

或者您可以:通过 RUN 键入“appwiz.cpl”打开“程序和功能”,然后按 Enter。