由于 ErrorCode =’0x80004005:80008083,.NET 核心应用程序无法在 IIS 中启动

我有一个。NET 核心应用程序。它与 VS2017和 Kestrel 在本地运行。它在 IIS 下本地运行。但是,在服务器上,它无法以 502.5 - Process Failure消息启动。

在事件日志中,我得到了更多的细节:

具有物理根的应用程序“ ...”“ C: ... my-app-file”无法使用命令行“ dotnet”启动进程。

以前版本的应用程序在同一台服务器上运行良好,唯一的区别是它们是用 VS2017RC (2 & 3)发布的,这是第一个完全发布 VS2017的版本。

ErrorCode = '0x80004005 : 80008083.是什么意思?

我该怎么补救?

83692 次浏览

由于 VS2017 RC 随新版本的。NET 的核心 SDK (.NET Core 1.0.4 SDK 1.0.1) ,您需要更新的框架,以及服务器上。

错误代码: 0x80004005表示文件丢失或无法访问。

子代码: 80008083似乎是版本冲突。

此错误意味着需要在服务器上安装不同版本的 dotnet。

我面临着同样的问题,我只有在我的服务器上安装了 dotnet cor 2,所以通过安装这个链接,您可以运行您的代码在其他版本的点核心。不要忘记重新启动 IIS。 Https://download.microsoft.com/download/6/a/2/6a21c555-b042-46ea-bbb4-368aaccb3e25/dotnetcore.1.0.8_1.1.5-windowshosting.exe

我在 Azure 应用服务上发布了一个新的.NET Core 2.0 web 应用程序,然后碰到了这个错误。

访问网站:

HTTP 错误502.5-进程失败 此问题的常见原因: 应用程序进程启动失败 应用程序进程启动但随后停止 进程已启动,但未能侦听配置的端口

调试: 使用 Azure Application Insights 和 App Service-高级工具(KUDU)查看 工具-调试控制台-浏览 日志文件文件夹 Eventlog.xml有一个日志行:

具有物理根‘ D: home site wwwroot’的应用程序‘ MACHINE/WEBROOT/APPHOST/xxxx’无法使用命令行‘ dotnet. WebApp.dll’启动进程,ErrorCode =’0x80004005:8000808c。

<Provider Name="IIS AspNetCore Module"/>
<EventID>1000</EventID>
<Level>1</Level>
<Task>0</Task>
<EventData>
<Data>Application 'MACHINE/WEBROOT/APPHOST/xxxx' with physical root 'D:\home\site\wwwroot\' failed to start process with commandline 'dotnet .\WebApp.dll', ErrorCode = '0x80004005 : 8000808c.</Data>
</EventData>
</Event>

解决方案

这个答案: 删除天蓝色的 wwwroot 文件夹 ,再从 VS 上发布,对我来说 尽管最初没有遗留的 Core 1.1应用程序很管用。

在应用程序中启动 Azure 控制台,删除 wwwroot 文件夹的内容,然后重新部署。

RMDIR wwwroot /S /Q

进一步测试 遵循这一点对于测试非常有帮助,当遵循完全相同的原则时,它会起作用,然后偏离你需要找到的错误。 Https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs

对我来说,我必须确保我有最新的。安装了 Net Core Runtime 和 Windows 主机模块,所有这些都可以从 https://www.microsoft.com/net/download/windows获得(最新版本应该总是可以在这里获得)。

具体来说,我安装了:

全部。如果您真的只做主机,那么可能不需要 Net Framework 4.7.1运行时。你服务器上的网络核心应用程序,但我安装它是为了安全。

现在,有一个简单的方法可以看到实际的错误是什么。 从 App 服务打开 Console 部分,然后尝试运行 dotnet 应用程序。从那里我们可以得到完整的错误消息和跟踪信息: enter image description here

对我来说,一个可行的解决方案是将其添加到 VisualStudio 中的发布配置文件:

<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>

我相信这将使主机使用所需的文件来运行应用程序,而不是依赖于目标清单中设置的规范,这些规范可能是错误的(服务器上的运行时/sdk 或您的本地与这些规范冲突)。

对于.net core 2.0

  1. 检查是否安装了适当的 DotNetCore.2.0.Y-WindowsHosted
  2. 在安装了 Windows 宿主之后,“需要”重新启动计算机。
  3. 打开 Powershell; cd install _ 目录; dotnet abcd.dll这是一个预先控件,您可以检查后,安装 Windows 主机..。

所有我必须做的修复这个错误是重新启动我的开发计算机和重新编译和重新发布的网站。VS 没有正常响应。

我也有这个问题,所以我想把我的解决方案贴出来。 我不知道这是否是有意的,但我不认为 dotnet 核心2支持您的项目名称的空间字符。

我创建并发布了一个名为“ Mikes App”的项目,当尝试使用 IIS 运行站点时,我会得到这个错误(。由于 ErrorCode = “0x80004005”,NET 核心应用程序无法在 IIS 中启动)。当我通过 web.config 文件启用 stdoutLogs 时,我发现了一个错误:

找不到与命令“ dotnet-. Mikes”匹配的可执行文件

我觉得很奇怪,因为 web.config 文件正确地显示了参数下的 dll 路径,即“ . Mikes App.dll”

<aspNetCore processPath="dotnet" arguments=".\Mikes App.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

我在 Visual Studio 中创建了一个新的 dotnet core 2项目,并将其命名为“ Mikes-App”,重新发布它并更新了 IIS 站点上的目录。

然后网站工作得很好!

我在 IIS 上运行,出现了错误0x80004005:0,这是在事件查看器-> 应用程序日志中发现的。这是因为我的应用程序池没有访问网站文件夹的位置。

我通过将应用程序池标识更改为能够访问该文件夹的标识来解决这个问题。

我发现你必须安装的宿主版本是 没错相同的,你已经在 VS2017编译。后来的版本不向后兼容(至少我试过的版本都不向后兼容)。所以2.2.8不会运行2.2.1版本,例如,即使你期望一个小的修订来做到这一点。

如果你

Failed to start application '/LM/W3SVC/2/ROOT/{ControllerName}', ErrorCode '0x80004005'. Process Id: 29720. File Version: 16.0.21269.0. Description: IIS ASP.NET Core Module V2.

在 VisualStudio2019或其他版本中运行应用程序时出现错误。

解决方案

您需要关闭 VS 项目并删除位于您的项目文件夹中的 .vs隐藏文件夹,然后重新启动您的 VS 项目。

你必须从文件资源管理器中选择 启动 隐藏物品,这样才能查看隐藏的 。 vs文件夹。