由于 ErrorCode = '0x80004005 : 80008083,.NET Core 应用程序无法在 IIS 中启动
.NET Core app unable to start in IIS due to ErrorCode = '0x80004005 : 80008083
我有一个 .NET Core 应用程序。它使用 VS2017 和 Kestrel 在本地运行。它在 IIS 下本地运行。但是,在服务器上它无法以 502.5 - Process Failure
消息开始。
在事件日志中,我获得了更多详细信息:
Application '...' with physical root 'C:...\my-app-folder\' failed to start process with commandline '"dotnet" .\MyApp.dll', ErrorCode = '0x80004005 : 80008083.
该应用程序的先前版本在同一台服务器上运行良好,唯一的区别是它们是使用 VS2017RC (2&3) 发布的,而这是使用完全发布的 VS2017 的第一个版本。
ErrorCode = '0x80004005 : 80008083.
是什么意思?
我该如何解决?
由于 VS2017 RC 附带了新版本的 .NET Core SDK (.NET Core 1.0.4 SDK 1.0.1),您也需要更新服务器上的框架。
错误代码:0x80004005
表示文件丢失或无法访问。
子代码:80008083
似乎是版本冲突。
此错误意味着需要在服务器上安装不同版本的 dotnet。
我遇到了同样的问题,我的服务器上只安装了 dotnet cor 2,所以通过安装这个 link 你可以 运行 你的代码在其他版本的 dot net core 中。不要忘记重新启动 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 Error 502.5 - Process Failure
Common causes of this issue: The application process failed to start
The application process started but then stopped The application
process started but failed to listen on the configured port
调试中:
使用 Azure Application Insights 和 App Service - Advanced Tools (KUDU) 查看 Tools - Debug Console - 浏览 LogFiles 文件夹 eventlog.xml 有一个日志行:
具有物理根 'D:\home\site\wwwroot\' 的应用程序 'MACHINE/WEBROOT/APPHOST/xxxx' 无法使用命令行 'dotnet .\WebApp.dll' 启动进程,错误代码 = '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>
解决方案
天蓝色并从 VS 再次发布,对我有用尽管最初没有遗留的 Core 1.1 应用程序。
在应用程序中启动 Azure 控制台并删除 wwwroot 文件夹的内容,然后重新部署。
RMDIR wwwroot /S /Q
进一步测试
遵循这对测试非常有帮助,并且当遵循相同时它会起作用,然后偏离但是你需要找到错误。
https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs
对我来说,我必须确保安装了最新的 .Net Core 运行时和 Windows 托管模块,所有这些都可以从 https://www.microsoft.com/net/download/windows 获得(最新版本应该总是在这里可用) .
具体来说,我安装了:
- .Net 核心运行时 - https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-x64-installer
- Windows 服务器托管运行时 - https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-windows-server-hosting-installer
- .Net Framework 4.7.1 运行时 - https://www.microsoft.com/net/download/thank-you/net471
如果您确实只在服务器上托管 .Net Core 应用程序,则可能不需要完整的 .Net Framework 4.7.1 运行时,但我安装它是为了安全。
目前,有一种简单的方法可以查看实际错误是什么。
从应用程序服务打开控制台部分,然后尝试 运行 dotnet 应用程序。从那里我们可以获得完整的错误消息和跟踪信息:
一个对我有用的可能解决方案是我将其添加到 Visual Studio 中的发布配置文件中:
<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>
我相信这将使主机使用 运行 应用程序所需的文件,而不是依赖目标清单中设置的规范,这可能是错误的(服务器上的 runtime/sdk 或您的本地与这些规范冲突)。
.net 核心 2.0
- 检查是否安装了相应的 DotNetCore.2。0.Y-WindowsHosting。如果您的项目是 2.1,则安装 2.1。因此)
- 安装 windows 主机后 "required" 重新启动计算机。
- 打开powershell;光盘installation_directory;
dotnet abcd.dll
这是一个预控制,您可以在安装 WindowsHosting 后检查...
要修复此错误,我所要做的就是重新启动我的开发计算机并重新编译并重新发布该站点。 VS 没有正确响应。
我也遇到了这个问题,我想 post 我的解决方案。
我不确定这是否有意,但我认为 dotnet core 2 不支持项目名称中的 Space 个字符。
我创建并发布了一个名为 "Mikes App" 的项目,当尝试 运行 使用 IIS 的站点时,我会收到此错误(由于 ErrorCode = ',.NET Core 应用程序无法在 IIS 中启动0x80004005')。当我通过 web.config 文件启用 stdoutLogs 时,我发现错误:
No executable found matching command "dotnet-.\Mikes"
我觉得这很奇怪,因为 web.config 文件确实正确地显示了参数“.\Mikes App.dll”下的 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 中编译的完全相同的托管版本。更高版本不向后兼容(至少 none 我试过是)。因此 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.
运行 Visual Studio 2019 或其他版本的应用程序时出错。
解决方案
您需要关闭 VS 项目并删除位于项目文件夹中的 .vs
隐藏文件夹,然后重新启动您的 VS 项目。
您必须 启用 隐藏项目 选项 Windows Explorer 以便您可以查看隐藏的 [=23= .vs 文件夹.
我有一个 .NET Core 应用程序。它使用 VS2017 和 Kestrel 在本地运行。它在 IIS 下本地运行。但是,在服务器上它无法以 502.5 - Process Failure
消息开始。
在事件日志中,我获得了更多详细信息:
Application '...' with physical root 'C:...\my-app-folder\' failed to start process with commandline '"dotnet" .\MyApp.dll', ErrorCode = '0x80004005 : 80008083.
该应用程序的先前版本在同一台服务器上运行良好,唯一的区别是它们是使用 VS2017RC (2&3) 发布的,而这是使用完全发布的 VS2017 的第一个版本。
ErrorCode = '0x80004005 : 80008083.
是什么意思?
我该如何解决?
由于 VS2017 RC 附带了新版本的 .NET Core SDK (.NET Core 1.0.4 SDK 1.0.1),您也需要更新服务器上的框架。
错误代码:0x80004005
表示文件丢失或无法访问。
子代码:80008083
似乎是版本冲突。
此错误意味着需要在服务器上安装不同版本的 dotnet。
我遇到了同样的问题,我的服务器上只安装了 dotnet cor 2,所以通过安装这个 link 你可以 运行 你的代码在其他版本的 dot net core 中。不要忘记重新启动 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 Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but then stopped The application process started but failed to listen on the configured port
调试中: 使用 Azure Application Insights 和 App Service - Advanced Tools (KUDU) 查看 Tools - Debug Console - 浏览 LogFiles 文件夹 eventlog.xml 有一个日志行:
具有物理根 'D:\home\site\wwwroot\' 的应用程序 'MACHINE/WEBROOT/APPHOST/xxxx' 无法使用命令行 'dotnet .\WebApp.dll' 启动进程,错误代码 = '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>
解决方案
在应用程序中启动 Azure 控制台并删除 wwwroot 文件夹的内容,然后重新部署。
RMDIR wwwroot /S /Q
进一步测试 遵循这对测试非常有帮助,并且当遵循相同时它会起作用,然后偏离但是你需要找到错误。 https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs
对我来说,我必须确保安装了最新的 .Net Core 运行时和 Windows 托管模块,所有这些都可以从 https://www.microsoft.com/net/download/windows 获得(最新版本应该总是在这里可用) .
具体来说,我安装了:
- .Net 核心运行时 - https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-x64-installer
- Windows 服务器托管运行时 - https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-windows-server-hosting-installer
- .Net Framework 4.7.1 运行时 - https://www.microsoft.com/net/download/thank-you/net471
如果您确实只在服务器上托管 .Net Core 应用程序,则可能不需要完整的 .Net Framework 4.7.1 运行时,但我安装它是为了安全。
目前,有一种简单的方法可以查看实际错误是什么。
从应用程序服务打开控制台部分,然后尝试 运行 dotnet 应用程序。从那里我们可以获得完整的错误消息和跟踪信息:
一个对我有用的可能解决方案是我将其添加到 Visual Studio 中的发布配置文件中:
<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>
我相信这将使主机使用 运行 应用程序所需的文件,而不是依赖目标清单中设置的规范,这可能是错误的(服务器上的 runtime/sdk 或您的本地与这些规范冲突)。
.net 核心 2.0
- 检查是否安装了相应的 DotNetCore.2。0.Y-WindowsHosting。如果您的项目是 2.1,则安装 2.1。因此)
- 安装 windows 主机后 "required" 重新启动计算机。
- 打开powershell;光盘installation_directory;
dotnet abcd.dll
这是一个预控制,您可以在安装 WindowsHosting 后检查...
要修复此错误,我所要做的就是重新启动我的开发计算机并重新编译并重新发布该站点。 VS 没有正确响应。
我也遇到了这个问题,我想 post 我的解决方案。 我不确定这是否有意,但我认为 dotnet core 2 不支持项目名称中的 Space 个字符。
我创建并发布了一个名为 "Mikes App" 的项目,当尝试 运行 使用 IIS 的站点时,我会收到此错误(由于 ErrorCode = ',.NET Core 应用程序无法在 IIS 中启动0x80004005')。当我通过 web.config 文件启用 stdoutLogs 时,我发现错误:
No executable found matching command "dotnet-.\Mikes"
我觉得这很奇怪,因为 web.config 文件确实正确地显示了参数“.\Mikes App.dll”下的 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 中编译的完全相同的托管版本。更高版本不向后兼容(至少 none 我试过是)。因此 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.
运行 Visual Studio 2019 或其他版本的应用程序时出错。
解决方案
您需要关闭 VS 项目并删除位于项目文件夹中的 .vs
隐藏文件夹,然后重新启动您的 VS 项目。
您必须 启用 隐藏项目 选项 Windows Explorer 以便您可以查看隐藏的 [=23= .vs 文件夹.