http错误503服务不可用。 应用程序池停止访问网站

有这个post的数量,我现在已经尝试了很多东西。 但无济于事。 我自己是一个Winforms开发人员,几天前我开始在这个Web上工作,因为我的公司正在采取Webscheme。

我有一个ASP.Net项目,我想在本地IIS上承载它。 在“ Project properties -> Web设置”中,我select了“ Use Local IIS Server ,并将url作为localhost/MyApp 。 我试着在我的firefox浏览器上访问它,并收到HTTP Error 503. The service is unavailable.

以前,我得到了很多其他的错误,我一个接一个地修复了这些错误。 但是碰到这个。 这些是我在我的项目中的设置

  1. 应用程序池设置为ASP.Net v4.0经典
  2. 应用程序池Enable 32 bit Application属性为true
  3. 应用程序池已启动
  4. 项目生成属性设置为Any CPU的目标框架

但我想提一个奇怪的行为。 以下是我正在面对的事情

  1. 应用程序池已启动
  2. 我尝试访问我的本地网站(通过提供url作为localhost/MyApp
  3. 我收到错误作为HTTP Error 503. The service is unavailable
  4. 应用程序池已停止

我已经看到下面的链接 ,我已经试过了。 对于上述行为,我到达了这里 。 根据这个链接,计算机名不应该有. 在里面。 我没有任何 在我的电脑名称,但确实有-在它。 另外我的域名包含. 在里面。 此外,我无法更改这些设置,因为我的办公室笔记本电脑和我们的TFS设置绑定到我们的域名和计算机名称。

任何人都可以帮我理解发生了什么? 请指导我 谢谢。

编辑

我在Global.asax有以下代码。 Application_BeginRequest方法在同一个文件中是空的。

 protected override void Application_Start(object sender, EventArgs e) { base.Application_Start(sender, e); String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";", System.Environment.GetEnvironmentVariable("PATH")); System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process); MyAppLog.Initialize(); MyAppLog.WriteMessage("Application Started"); } 

更新

根据评论的build议,我可以从卡西尼运行网站。

造成这种情况的一个可能的原因是IIS中的应用程序池configuration为在某个自定义帐户下运行,并且此帐户不存在或者提供了错误的密码。 查看IIS中应用程序池的高级属性,使用它的帐户。

此外,事件日志可能包含更多关于为什么应用程序池在第一个请求中立即停止的信息。

好吧,我有另一种解决scheme的一个特定的情况:如果您使用WINDOWS 10,并且您最近更新(周年更新包),您需要按照下面的步骤:

  1. 检查你的Windows Event Viewer – 按Win + R键入: eventvwr ,然后按ENTER键。
  2. Windows Event Viewer的左侧,点击Windows Logs – > Application
  3. 现在,您需要在中间窗口中为源IIS-W3SVC-WPfind一些错误。
  4. 可能你会看到像这样的消息:

模块DLL >>path到DLL <<未能加载。 数据是错误的。

  1. 你必须去Control Panel – > Program and Features并根据哪个DLL不能加载,你需要修复另一个模块:
    • 对于rewrite.dll – findIIS URL重写模块2 ,然后单击Change – > Repair
    • aspnetcore.dll – find微软.NET核心1.0.0 – VS 2015工具… ,然后单击Change – > Repair
  2. 重启你的电脑。

对于我的情况是,我的login密码已更改,而应用程序池仍然使用旧的。 因此,只需点击应用程序池的“高级设置”,然后重新设置“身份”即可。

我面临同样的问题,并使用事件日志进行debugging。 首先它说:“来自Microsoft-Windows-WAS的事件ID 5059的描述无法find”。

然后我打开/closures使用打开窗口function的 WAS。 然后,我在eventvwr“Microsoft-Windows-DistributedCOM无法find”中看到了这个。

最后,我放弃了,并删除了应用程序池(用于停止访问网站),并重新创build它,因为它。 这解决了这个问题。

对于任何人来到这里与Windows 10,并更新到周年纪念更新后,请检查这个链接,它帮助了我:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

万一链接断开:如果事件日志显示aspnetcore.dll,rewrite.dll(大多数情况下也可能是其他的)加载失败,则必须修复缺失的项目。

以下是我们迄今为止遇到的两个具体问题以及如何解决这些问题,但是您可能遇到完全不同的问题:

 "C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference) Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2". "C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference) Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...". 

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

模块DLL C:\ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll加载失败。
数据是错误的。

然后,下面解决了我的情况下的问题: https : //kc.mcafee.com/corporate/index?page = content&id = KB72677&actp = LIST

从页面引用:

  1. 单击开始,运行,键入资源pipe理器并单击确定。
  2. 导航到:%windir%\ system32 \ inetsrv \ config
  3. 以pipe理员身份打开文件applicationHost.config,在记事本中进行编辑。
  4. 编辑<globalModules>部分并删除以下行:
    <add name =“MfeEngine”image =“%windir%\ System32 \ inetsrv \ HipIISEngineStub.dll”/>

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

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

大部分时间,这是由于AppPool设置发生的。

检查以下解决方法

  1. 检查Apppool服务正在运行。
  2. 检查AppPool的身份。

以下图像显示在IIS中的这些设置

在这里输入图像说明

当我第一次添加服务,并为其创build应用程序池。 我从命令提示符“iisreset”,它的工作。

如果可以在Visual Studiodebugging器中运行该网站,则可能会看到代码中应用程序池崩溃的位置。 在我的情况下,这是一个函数被recursion调用无限次数,并导致堆栈溢出。 注意:Windows事件日志和IIS日志对诊断问题没有帮助。

我有一个类似的问题。 我通过将我的用户添加到“本地安全策略”>“本地策略”>“用户权限分配”下的“作为批处理作业login”策略来解决此问题。

我有和iis 8.5一样的问题。 在windows日志 – >应用程序中searcheventViewer之后,我意识到我对位于“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319”中的.net框架的machine.config文件有一个权限错误\ CONFIG \ machine.config中”。 给它一个IIS_IUSRS的权限解决了我的问题(右键单击文件 – >属性 – >安全 – >编辑 – >添加 – > IIS_IUSRS)

在我的情况我检查事件日志,发现错误是不能读取configuration文件'试图从文件'\\?\',行号'0'读configuration数据。 数据字段包含错误代码。

错误代码是2307。

我删除了C:\ inetpub \ temp \ appPools中的所有文件并重新启动了iis。 它解决了这个问题。

我有一个类似的问题,所有我的应用程序池都停止,只要有networking请求。 虽然我在事件查看器中收到以下错误:

尝试从文件'\?\ C:\ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config'中读取configuration数据时,应用程序池“appPoolName”的工作进程遇到错误“Configuration file is well-formed XML”数字“3”。 数据字段包含错误代码。

这告诉我在application.config中有错误:

C:\ WINDOWS \ SYSTEM32 \ INETSRV \设置\的applicationHost.config

在我的情况下,我编辑web.config与部署IIS明显不喜欢的元素,applicationHost.config刮了web.config并插入这个坏的元素,并不会解决,直到我手动删除它

除了Orhan的答案的这个链接中概述的步骤之外,您可能还需要通过转到IISpipe理器>服务器根目录>模块>configuration本机模块来删除本地模块。 selectMfeEngine,然后select删除。

我遇到这个错误,在我的情况下,原因是前一段时间我修改了用户密码,并且直到我重新启动应用程序池503错误才出现。

所以我解决了它在应用程序池/高级设置/身份设置新的密码