我刚刚将我们的 ASP.NET Core 2.0 应用程序升级到2.1。它可以很好地构建和部署,但是在尝试从我们的本地Web服务器(IIS)启动它时出现了以上错误。从Azure启动时,我也会遇到相同的错误。
错误日志给我以下错误。
具有物理根目录“ C:\ OscarWeb_Test \”的应用程序“ MACHINE / WEBROOT / APPHOST / OSCAR_INTERNAL_HTTPS”无法使用命令行“ .net。\ OscarWeb.dll”启动进程,错误代码=“ 0x80004005:80000083”。 strong>
从命令行启动应用程序时,出现以下错误。
它说缺少一个程序集,但是它在项目中,并且在我升级之前就存在。由于某种原因,由于升级到 ASP.NET Core 2.1
,因此找不到程序集答案 0 :(得分:1)
为什么会出现此错误,原因有多种。我将尝试着重指出引起我这个问题的两个原因:
以下链接上发布的问题的第一个答案确实对我有所帮助。 ASP.NET Core 1.0 on IIS error 502.5
使用dotnet命令在cmd中调用项目的.dll文件将帮助您确切地了解问题所在。就我而言,ASP.NET核心存在版本错误。确保项目的.csproj文件中的所有项目依赖项都使用相同版本的ASP.NET Core SDK和运行时捆绑包。您可以通过cmd上的dotnet命令检查系统上存在的版本:
dotnet --info
由于在C:\ Windows \ System32 \ drivers \ etc下的主机文件中的配置错误,我还不断收到HTTP 502.5错误。确保在 hosts 文件中正确配置了应用程序正在侦听的IP和端口。
答案 1 :(得分:1)
我的解决方法是:
打开web.config
文件并查找进程路径。默认情况下,它设置为processPath="dotnet"
。
您已找到dotnet.exe
文件,并将此位置复制并粘贴到web.config
文件中。
就我而言:
processPath="C:\Program Files\dotnet\dotnet.exe"
答案 2 :(得分:0)
解决方案是将属性PublishWithAspNetCoreTargetManifest
设置为false。我已经在.csproj中进行了如下设置。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
<PropertyGroup>
<ItemGroup>
它适用于本地(IIS)和Azure部署。
中提供了对该属性的完整说明。答案 3 :(得分:0)
我误删除了
CreateWebHostBuilder(args).Build().Run();
来自Program.cs文件。放回去后,错误立即得到解决
答案 4 :(得分:0)
我在2.1中遇到了同样的问题,请确保您具有相同版本的 .net核心运行时间(x86 / x64)和 .net核心的窗口服务器托管在环境中,您正在设置应用程序。 下面是我的当前要求是2.2的设置,但它也适用于2.1,也对我有用。
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
答案 5 :(得分:0)
当按照建议运行 dotnet 命令时,我发现我有一个 BadImageFormatException。我的平台目标是 x86。这修复了它:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>