提问



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



  http错误503服务不可用。



我已验证池已启动,并且已在目标文件夹上给出 IIS_IUSRS 完全控制


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


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

最佳参考


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


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


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





编辑:jcolebrand 2017-05-04


我有这个错误,这是因为我正在做一些PowerShell脚本,所以我C:\\path而不是C:\path。 Yay错别字!说这话,总是仔细检查你的键入值。

其它参考1


就我而言,问题是DefaultAppPool。我将加载用户配置文件更改为false,现在可以正常工作。但是,我不知道这是否有副作用。


其它参考2


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


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


netsh http show urlacl


检查这里返回的是什么,如果有什么东西与你正在测试的url匹配,这里是删除一个URL acl的命令(例如):


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


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

其它参考3


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


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

其它参考4


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

其它参考5


[24]


在我的情况下,应用程序池已停止。开始修复问题。


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

其它参考6


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

其它参考7


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


503服务不可用的不常见根本原因[25]

其它参考8


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



  应用程序池APP_POOL_NAME的工作进程遇到了问题
  尝试读取配置时出现错误无法读取配置文件
  来自文件\\?\\的数据,行号0。数据字段包含
  错误代码。



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



  

      
  1. 转到安装IIS的驱动器,例如。 C:\inetpub\temp\appPools\

  2.   
  3. 删除与您的应用池名称相同的目录(或虚拟目录)。

  4.   
  5. 再次回收/启动您的应用程序池。

  6.   



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


修改


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



  

      
  1. 使用以管理员身份运行打开Windows PowerShell窗口
      选项。

  2.   
  3. 运行以下命令:
      
      

        
    • Stop-Service -Force WAS

    •   
    • Remove-Item -Recurse -Force C:\inetpub\temp\appPools\*

    •   
    • Start-Service W3SVC

    •   

  4.   


其它参考9


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


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

其它参考10


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

其它参考11


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

其它参考12


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


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

其它参考13


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


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



  http错误503服务不可用。



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

其它参考14


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


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


经过几次迭代之后,我结束了上面关于rewrite.dll的错误消息。这导致直接下载并安装Microsoft URL重写工具。最后所有的网站都变得活灵活现。[31]

其它参考15


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


这篇StackOverflow帖子帮助了我。


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

其它参考16


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


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


我使用的是Windows Server 2008 R2。


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


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


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

其它参考17


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

其它参考18


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


快速浏览事件查看器(WIN+R > eventvwr)暴露了这个问题。
[33]


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


该应用程序依赖于另一个被禁用的应用程序。因此,请记住,如果其中一个依赖进程已经关闭,应用程序可以间接关闭。我们只需重新启用.NET应用程序池,我们的其他应用程序就会再次正常运行。

其它参考19


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


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


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

其它参考20


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


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


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

其它参考21


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

其它参考22


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

其它参考23


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



  模块DLL C:\\ Windows \\ System32 \\ inetsrv \\ HipIISEngineStub.dll无法加载。

      数据是错误的。



然后,McAfee.com上的这种解决方法解决了我的问题。[34]


从页面引用:



  

      
  1. 单击开始,运行,键入资源管理器,然后单击确定。

  2.   
  3. 导航至:%windir%\\ system32 \\ inetsrv \\ config

  4.   
  5. 以管理员身份打开文件applicationHost.config,以便在记事本中进行编辑。

  6.   
  7. 编辑< globalModules>部分并删除以下行:
      
    < add name =MfeEngineimage =%windir%\\ System32 \\ inetsrv \\ HipIISEngineStub.dll/>

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

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

  12.   


其它参考24


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


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

其它参考25


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

其它参考26


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


只有在使用NetworkService时,站点才会使用ApplicationPoolIdentity在本地启动:HTTP错误503.服务不可用。

其它参考27


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


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

其它参考28


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

其它参考29


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


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


netstat -b