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

HTTP错误503。业务不可用。

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

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

有人能告诉我怎么了吗?


当前回答

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

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

... 你可能会遇到一个在Windows 10秋季创建者更新和/或. net Framework v4.7.1中引入的错误。可以通过以下解决步骤来解决,这些步骤来自对相关问题的回答无法读取配置文件“试图从文件中读取配置数据”\\?\<EMPTY>',行号'0'。

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

我已经通过在dotnet GitHub repo上创建以下问题向微软报告了这个错误:安装4.7.1后,IIS AppPool停止,提示“无法读取配置文件”。

EDIT

微软回应说,这是一个已知的问题,Windows安装过程中的秋季创造者更新,并记录在KB 4050891, Web应用程序返回HTTP错误503和was事件5189在Windows 10版本1709(秋季创造者更新)。那篇文章提供了下面的变通程序,与上面的类似。但是,请注意,它将回收所有应用程序池,不管它们是否受到问题的影响。

以管理员身份运行打开Windows PowerShell窗口 选择。 执行如下命令: 停止服务-Force WAS C:\inetpub\temp\appPools\* 开始营运W3SVC

其他回答

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

我知道所有设置都没了,但还能用。(请阅读原文)

按Windows + X 选择“应用程序和功能” 选择“程序和功能” 选择“打开或关闭Windows功能” 取消选中“Internet信息服务”复选框 重启PC 重新安装(再次选中“Internet信息服务”复选框) 然后测试新的!

或者你可以:通过运行,输入“appwiz”打开“程序和功能”。cpl”,按“Enter”。

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

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

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

在我的案例中,与域名相关联的应用程序池与与个别网站/应用程序相关联的应用程序池不匹配。我不知道这是怎么发生的,但一旦域名应用程序池被纠正,问题就解决了。

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

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

netstat -b