asp.net 接口503 - Http错误503服务不可用




443错误 http503 (25)

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

http错误503服务不可用。

我已验证池已启动,并且已对目标文件夹提供了IIS_IUSRS完全控制

我搜索了四周,但没有找到任何解决了我的问题的东西,并且在EventLog或C:\ Windows \ System32 \ LogFiles \ HTTPERR文件夹中没有任何帮助

谁能告诉我什么是错的?


Answers

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

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

netsh http show urlacl

检查此处返回的内容,如果有任何与您正在测试的URL相匹配,则此处为删除一个URL acl的命令(例如):

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

(注意仔细记录你在这里做了什么,以防它与原始问题无关)


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


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

在我的情况下,问题是没有工作进程可以启动的应用程序池,因为它的配置文件无法读取 - 我已经包括一个额外的'。' 在它的名字的末尾。


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


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

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

netstat -b

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

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


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

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


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

要修复它,请将其删除或将其重命名为app_offline.htm.bak

就我而言,我在向同事展示如何使用它来暂时阻止网站流量,然后忘记我在我的箱子上做到了这一点时添加了它。 叹。


我知道这是以不同的方式回答,但在我的情况下,我发现应用程序池即使在手动重新启动后也会自动停止。 而且,但是当我更改所用帐户的密码并在几天前更改时,它工作得很好,没有任何其他更改。 尝试一样。


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

快速查看事件查看器( WIN+R > eventvwr )暴露了此问题。

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

该应用程序依赖于另一个被禁用的应用程序。 因此,请记住,如果某个应用程序的某个依赖进程已停止,则该应用程序可能会间接关闭。 我们只是重新启用了.NET应用程序池,而我们的其他应用程序又开始正常运行。


就我而言,我创建了一个新的应用程序池,并忘记启动它。


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

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

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

从页面引用:

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

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

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

如果应用程序池在某个用户身份下运行,则再次转到更新用户名密码的高级设置,它对我有用。


检查事件查看器 - Windows - 应用程序。 如果存在由IIS-W3SVC-WP制作的红色“错误”行,并且该消息类似于模块DLL C:\ Windows \ system32 \ inetsrv \ rewrite.dll加载失败。 数据是错误的。 那么你缺少一些Windows安装程序的功能。

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

在经历了几次迭代之后,我结束了关于“rewrite.dll”的上述错误消息。 这导致直接下载并安装Microsoft URL重写工具 。 最后所有的网站都会变成现实。


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

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



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

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


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

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

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

编辑:jcolebrand 2017-05-04

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


就我而言,应用程序池已停止。 开始解决问题。

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


我遵循上面的解决HTTP错误503链接。 在我的情况下,我的应用程序池在每次右键单击我的svc文件并选择“浏览”时都停止。

我遵循以下步骤来解决应用程序池停止问题

我正在使用Windows Server 2008 R2。

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

在“流程模型”部分,点击“身份”,并在我的“应用程序池标识”弹出窗口中单击“ 这将打开设置凭据弹出,我给了用户名,密码,并确认密码,然后单击确定。

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


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


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

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

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

  1. 转到安装了IIS的驱动器,例如。 C:\inetpub\temp\appPools\
  2. 删除与您的应用程序池名称相同的目录(或虚拟目录)。
  3. 回收/再次启动您的应用程序池。

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

编辑

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

  1. 通过使用以管理员身份运行选项打开Windows PowerShell窗口。
  2. 运行以下命令:
    • Stop-Service -Force WAS
    • Remove-Item -Recurse -Force C:\inetpub\temp\appPools\*
    • Start-Service W3SVC

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


检查您的应用程序各自的应用程序框架池 - 可能会停止。 如果是,请启动并再次检查。

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


标记正确的答案向我指出了从Visual Studio 2013向Server 2012发布网站的正确方向。“验证连接”按钮保持说明检查Web管理服务是否已安装。

截至2014年4月,这些简单的步骤有效:

安装Web部署

在Powershell中:
(来自: https://www.orcsweb.com/blog/jamie-furr/manage-and-install-iis8-on-windows-2012-server-core/https://www.orcsweb.com/blog/jamie-furr/manage-and-install-iis8-on-windows-2012-server-core/

  • 安装-WindowsFeature Web服务器
  • 安装-WindowsFeature Web-Mgmt-Service
  • Set-ItemProperty -Path HKLM:\ SOFTWARE \ Microsoft \ WebManagement \ Server -Name EnableRemoteManagement -Value 1
  • Net Stop WMSVC
  • Net Start WMSVC
  • netsh advfirewall firewall add rule name =“允许Web管理”dir = in action = allow service =“WMSVC”

在IIS中:
(来自http://blog.richardszalay.com/2013/02/02/building-a-deployment-pipeline-with-msdeploy-part-4-server-configuration/

  • 创建一个新的非管理员用户
  • 创建用户后,我们需要授予其部署站点的权限。 右键单击您的网站,然后从“部署”子菜单中选择“配置Web部署发布...”






asp.net iis http-error