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

HTTP错误503。业务不可用。

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

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

有人能告诉我怎么了吗?


当前回答

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

在为这个临时文件夹的所有人添加了完全控制后,我重新启动了Windows进程激活服务,一切都重新联机了。

如果我能更优雅一点,那么授予apppoool用户对文件夹的完全控制权就足够了,但我似乎一直不记得应用程序池名称和应用程序池用户是如何相互关联的……

其他回答

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

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

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

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


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

一直在事件日志中看到这条消息:模块DLL C:\Windows\system32\RpcProxy\RpcProxy.dll加载失败。数据就是错误。原来dll是64位的,不能加载到32位进程中。

在我的例子中,问题是DefaultAppPool。我把“加载用户配置文件”改为false,现在它可以工作了。然而,我不知道这是否有副作用。

关于设置LoadUserProfile选项的进一步阅读:当我设置IIS池的LoadUserProfile时,到底发生了什么?

如果应用程序池在某些特定的用户身份下运行,则转到高级设置并再次更新用户名和密码,以确保它们是正确的。