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

HTTP错误503。业务不可用。

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

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

有人能告诉我怎么了吗?


当前回答

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

其他回答

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

在我的案例中,问题是没有工作进程可以为应用程序池启动,因为它的配置文件无法读取-我已经包含了一个额外的'。在它的名字后面。

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

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

快速查看事件查看器(WIN+R > eventvwr)就会发现这个问题。

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

应用程序依赖于另一个被禁用的应用程序。因此,请记住,如果应用程序的一个相关进程宕机,应用程序可能会间接宕机。我们只是重新启用了. net应用程序池,我们的其他应用程序又开始正常运行了。

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

下面是转储所有URL acl的console命令:

netsh http show urlacl

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

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

(小心注意你在这里所做的事情,以防它与原始问题无关)

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

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