449

I'm really new to setting up web servers in general. I've got IIS 8 on Windows 8, and I'm trying to set up a little site locally, while doing some development. In IIS I choose Add Site, give a name, points to a location where I have a index.html file (I've tried different locations, latest in a c:\inetpub\wwwroot\test -folder) and otherwise use all default settings. However, when I try to browse to localhost I get

HTTP Error 503. The service is unavailable.

I've verified the pool is started, and I've given IIS_IUSRS Full Control on the target folder

I've search around but not found anything that solved my issue, and there's nothing helpfull in the EventLog or in the C:\Windows\System32\LogFiles\HTTPERR folder

Could anyone tell me what's wrong?

4

49 回答 49

500

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

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

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

于 2013-10-30T13:02:25.227 回答
105

其他答案都很好。但就我而言,我正在使用一个 Windows 机器,它已经在运行一些旧的 IIS、IISExpress 或任何其他网站。发生的事情是在系统中以某种方式保留的 urls ACL。所以,你可能想检查一下。

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

netsh http show urlacl

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

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

(请注意仔细注意您在此处所做的操作,以防与原始问题无关)

于 2015-01-16T14:11:52.417 回答
98

就我而言,问题是 DefaultAppPool。我将“加载用户配置文件”更改为 false,现在它可以工作了。但是,我不知道这是否有副作用。 在此处输入图像描述

于 2014-04-18T16:54:35.933 回答
53

Check your application's respective Application Framework Pool - it could be stopped. If it is, start it and check again.

If you're still experiencing issues you can also check out Event Viewer to find the cause of that error in order to troubleshoot more.

于 2013-10-25T10:20:15.463 回答
34

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

于 2016-06-03T17:08:01.027 回答
27

应用程序池已停止

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

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

于 2016-06-25T07:24:25.340 回答
26

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

于 2013-08-16T15:17:10.723 回答
18

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

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

...您可能会遇到明显在 Windows 10 Fall Creators Update 和/或 .Net Framework v4.7.1 中引入的错误。它可以通过以下解决方法步骤来解决,这些步骤来自相关问题的答案Cannot read configuration file ' trying to read configuration data from file '\\?\<EMPTY>', line number '0'

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

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

编辑

微软回应称,这是 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
于 2017-11-27T15:33:19.177 回答
12

我通过删除与 IIS 中的应用程序目录匹配的 URL 保留解决了此问题。我遇到了与本文中概述的类似(绝对不一样)的问题:

503 服务不可用的不太常见的根本原因

于 2015-03-18T18:53:21.003 回答
12

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

就我而言,问题是无法为应用程序池启动任何工作进程,因为无法读取其配置文件 - 我包含了一个额外的“。” 在其名称的末尾。

于 2013-03-22T15:36:44.577 回答
11

对于 Windows Server 2012 R2,我这样做了:IIS > App.. Pools >(有黑色“停止”方块)>右键单击它>开始

于 2018-12-29T16:53:25.470 回答
9

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

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

于 2013-01-30T14:56:19.513 回答
9

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

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

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

于 2015-10-15T14:50:37.090 回答
8

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

于 2014-08-20T11:05:09.637 回答
7

我遇到了同样的问题,但这是IIS.

为您的站点/应用程序选择Advanced Settings...,然后查看Enabled Protocols值。无论出于何种原因,我的网站的值都是空白的,并导致以下错误:

http错误503服务不可用。

解决方法是添加http并选择OK. 然后该站点再次正常运行。

于 2013-10-17T20:31:32.817 回答
7

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

于 2015-10-22T08:48:58.077 回答
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 工具。最后,所有网站都栩栩如生。

于 2014-11-10T19:25:35.100 回答
5

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

于 2020-03-04T20:08:46.953 回答
5

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

快速查看事件查看器(WIN+R > eventvwr)暴露了这个问题。 在此处输入图像描述

将系统和应用程序窗口的输出过滤到 WAS 是一个好主意,因为它可能会变得非常冗长。

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

于 2017-02-27T17:05:27.813 回答
4

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

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

我正在使用 Windows Server 2008 R2。

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

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

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

于 2014-05-02T22:11:19.370 回答
4

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

于 2021-04-19T06:00:24.723 回答
4

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

于 2019-10-14T07:27:32.603 回答
4

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

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

于 2018-06-22T14:54:44.957 回答
4

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

这篇 StackOverflow 帖子帮助了我。

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

于 2016-04-25T11:23:44.173 回答
3

如果您有 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 服务器。
于 2014-12-28T15:01:49.007 回答
3

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

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

netstat -b
于 2016-03-25T21:23:56.023 回答
3

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

HTTP 的 IIS 站点绑定http绑定的tname

于 2018-08-30T14:58:59.010 回答
2

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

于 2015-10-15T10:28:07.147 回答
2

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

于 2019-08-01T05:22:24.860 回答
2

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

于 2016-01-05T08:59:19.247 回答
2

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

于 2016-07-22T11:14:22.253 回答
2

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

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

于 2015-12-03T21:15:45.973 回答
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 经典和集成模式处理程序和脚本映射。它还重新创建 ASP.NET v4.0 和 ASP.NET v4.0 经典应用程序池,并将 .NET 框架 4 设置为 DefaultAppPool 和经典 .NET 应用程序池。

于 2016-03-31T15:59:55.487 回答
1

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

为了清除它,我不得不使用

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}
于 2019-12-02T10:23:40.103 回答
1

在此处输入图像描述

对我来说,解决方案是将 Enable 32-bit Applications 更改为 False


没有一个答案对我有用。所以我想分享我在研究数小时后发现的东西。

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

于 2020-11-10T15:44:44.123 回答
1

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

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

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

于 2016-01-20T15:41:49.927 回答
1

您也可以尝试以下方法。

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

现在它应该可以工作了。

于 2021-02-19T09:57:33.853 回答
0

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

于 2014-02-27T12:34:08.590 回答
0

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

于 2014-08-16T01:09:42.500 回答
0

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

文件丢失。其原因是未安装 Windows 功能“HTTP 重定向”。检查该功能是否在Internet Information Services\World Wide Web Services\Common HTTP Features\HTTP Redirection. 如果您现在才安装它,则不需要重新启动。

于 2014-08-15T16:57:40.520 回答
0

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

站点不会使用 ApplicationPoolIdentity 在本地启动,仅在使用 NetworkService 时:“HTTP 错误 503。服务不可用。”

于 2014-06-05T13:29:39.793 回答
0

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

于 2017-10-24T07:14:19.570 回答
0

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

于 2016-07-04T14:58:44.807 回答
0

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

请看这个

于 2016-12-14T08:00:07.470 回答
0

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

于 2021-04-07T08:40:14.417 回答
0

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

这对我有用!

于 2016-09-08T08:44:40.307 回答
0

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

于 2017-01-10T16:52:49.377 回答
0

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

于 2017-04-12T20:21:51.990 回答
-1

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

我知道所有设置都消失了,但它可以工作。(请阅读这个)

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

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

于 2021-08-07T10:35:31.860 回答