错误 502.5 - 进程失败 ASP.NET Core 1.1
Error 502.5 - Process Failure ASP.NET Core 1.1
我在部署我的 ASP.NET 核心网络应用程序时遇到此错误。我做了以下事情:
- 启用 Web 服务器 (IIS) 角色并建立角色服务。
- 安装 .NET Core Windows 服务器托管捆绑包 v2.0.3
- 重启系统或执行
net stop was /y
然后net start w3svc
这是我的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>MyWebApplication</AssemblyName>
<OutputType>Exe</OutputType>
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="6.1.1" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink.Loader" Version="14.1.0" />
<PackageReference Include="System.Runtime.Serialization.Json" Version="4.3.0" />
<PackageReference Include="Telerik.UI.for.AspNet.Core" Version="2017.2.621" />
</ItemGroup>
<PropertyGroup>
<UserSecretsId>8844d677-223b-4527-a648-387a65933d55</UserSecretsId>
<ApplicationIcon>wwwroot\favicon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" />
</ItemGroup>
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<Version>1.0.0</Version>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants>$(DefineConstants);RELEASE</DefineConstants>
</PropertyGroup>
</Project>
这是我的 web.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at https://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\MyWebApplication.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
我在事件查看器中收到此错误:
Application 'MACHINE/WEBROOT/APPHOST/WWW.MYWEBAPP.COM' with physical
root 'C:\inetpub\www.mywebapp.com\' failed to start process with
commandline 'dotnet .\mywebapplication.dll', ErrorCode = '0x80004005 :
80008083.
您很可能缺少 Visual C++ 2015 运行时(可用 here)。托管包会在安装期间尝试下载并安装它,但如果出现网络问题或服务器无法连接到外部(在企业环境中很常见),则会失败,您需要使用可重新分发。
我不记得我上次遇到这个问题时是否需要它,但你可能想在之后再次重启你的服务器,以防万一。
编辑
如果您仍然遇到问题,请通过以下方式从命令行尝试 运行 您的应用:
dotnet MyApp.dll
这会让您看到在启动时引发的任何异常。
如果您收到如下错误:
It was not possible to find any compatible framework version ...
确保您拥有应用程序所针对的 ASP.NET 核心版本的特定运行时。目前,它是 2.0.3(适用于所有 2.X 应用)或 LTS 1.1.5(适用于所有 1.X 应用)。您可以找到最新的运行时 here.
我发现了同样的问题,但我的目标框架工作是 netcoreapp2.0 并且我根据以下 Microsoft 文档使用没有第三方依赖项的独立部署解决了这个问题。我也使用了目标框架netcoreapp1.0,它可以使用相同的方法解决。
我在部署我的 ASP.NET 核心网络应用程序时遇到此错误。我做了以下事情:
- 启用 Web 服务器 (IIS) 角色并建立角色服务。
- 安装 .NET Core Windows 服务器托管捆绑包 v2.0.3
- 重启系统或执行
net stop was /y
然后net start w3svc
这是我的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>MyWebApplication</AssemblyName>
<OutputType>Exe</OutputType>
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="6.1.1" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink.Loader" Version="14.1.0" />
<PackageReference Include="System.Runtime.Serialization.Json" Version="4.3.0" />
<PackageReference Include="Telerik.UI.for.AspNet.Core" Version="2017.2.621" />
</ItemGroup>
<PropertyGroup>
<UserSecretsId>8844d677-223b-4527-a648-387a65933d55</UserSecretsId>
<ApplicationIcon>wwwroot\favicon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" />
</ItemGroup>
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<Version>1.0.0</Version>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants>$(DefineConstants);RELEASE</DefineConstants>
</PropertyGroup>
</Project>
这是我的 web.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at https://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\MyWebApplication.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
我在事件查看器中收到此错误:
Application 'MACHINE/WEBROOT/APPHOST/WWW.MYWEBAPP.COM' with physical root 'C:\inetpub\www.mywebapp.com\' failed to start process with commandline 'dotnet .\mywebapplication.dll', ErrorCode = '0x80004005 : 80008083.
您很可能缺少 Visual C++ 2015 运行时(可用 here)。托管包会在安装期间尝试下载并安装它,但如果出现网络问题或服务器无法连接到外部(在企业环境中很常见),则会失败,您需要使用可重新分发。
我不记得我上次遇到这个问题时是否需要它,但你可能想在之后再次重启你的服务器,以防万一。
编辑
如果您仍然遇到问题,请通过以下方式从命令行尝试 运行 您的应用:
dotnet MyApp.dll
这会让您看到在启动时引发的任何异常。
如果您收到如下错误:
It was not possible to find any compatible framework version ...
确保您拥有应用程序所针对的 ASP.NET 核心版本的特定运行时。目前,它是 2.0.3(适用于所有 2.X 应用)或 LTS 1.1.5(适用于所有 1.X 应用)。您可以找到最新的运行时 here.
我发现了同样的问题,但我的目标框架工作是 netcoreapp2.0 并且我根据以下 Microsoft 文档使用没有第三方依赖项的独立部署解决了这个问题。我也使用了目标框架netcoreapp1.0,它可以使用相同的方法解决。