HTTP错误502.5-升级到ASP.NET Core 2.2后ANCM进程外启动失败

The*_*n94 35 c# asp.net-core-2.2

将项目升级到ASP.NET Core 2.2之后,我尝试运行该应用程序(当然是本地),浏览器显示了一条错误消息,如下面的屏幕截图所示。

在此处输入图片说明

Visual Studio错误资源管理器不再通知任何错误。我不知道怎么回事

Ale*_*das 16

就我而言,我将一些nuget软件包升级到了net core 2.2,但是我没有安装net core 2.2 sdk,所以我去了net core网站下载了最新的sdk或运行时软件包,然后我做了一个net stop was /y,然后一个net start w3svc在CMD中以管理员身份。问题为我解决。

  • 这对我有用。尽管在服务器上只需要运行时。 (4认同)

Ali*_*uli 10

您有 2 个解决方案(此答案适用于 Windows 服务器,我对 linux 服务器一无所知)。

第一的:

  • 将项目的所有文件夹(bin 和 obj 文件夹除外)复制到服务器

  • 在你的项目文件夹中打开 cmd 然后运行这个命令:dotnet run然后所有的警告和错误都会显示给你(如果你有关于上述命令的错误无法识别从这个链接下载 dot net core sdk )

第二:

  • 您必须在 web.config 中将 HostingModel 属性从 OutOfProcess 更改为 inprocess 并且您可以将 stdoutLogEnabled 更改为 true 值以在日志文件夹中获取您的项目错误
  • 阅读您的项目错误并修复它们。

在我的情况下 web.config 是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\BMS.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我把它改成:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\BMS.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)


vid*_*uch 8

就我而言,这是appsettings.json中的日志级别设置不正确。我没有发出警告,而是发出了警告,这导致应用程序崩溃并出现上述错误。

  • 是的,这里也一样,我试图找到问题,但发现缺少逗号:( (2认同)

小智 8

似乎每个人对此都有不同的答案。我也有这个问题。您可以看出,导致此问题的原因有很多。如果您发现这些解决方案没有任何帮助,或者在尝试执行所有这些不同的解决方案时遇到问题,您可以尝试从发布文件夹的命令行运行您的应用程序。

发布后,如果收到此错误,请转到发布文件夹,然后打开命令/终端窗口,然后键入dotnet .\YourStartupProject.dll,您应该会收到异常错误,这将使解决问题变得更容易。

例如,这是我在没有设置 SQL Server 的情况下尝试新环境时收到的错误,当然也会收到此错误。

Application startup exception: System.Exception: Could not resolve a service of type 
'YourStartupProject.DataServices.DbContext.DbContext' for the parameter 
'context' of method 'Configure' on type 'YourStartupProject.Startup'. ---> 
System.ArgumentNullException: Value cannot be null.
Parameter name: connectionString
Run Code Online (Sandbox Code Playgroud)

解决错误后,再试一次,冲洗,重复。


Zul*_*kas 7

我遇到了这个问题,并有一个不同的解决方案。对我来说,我有一个与该应用程序已过期的软件包(我已经在NuGet上对其进行了更新,并且该库尚未在生产中被替换)。更新软件包对我来说很固定。

注意:我必须手动使用项目dll运行dotnet.exe才能看到为我修复的消息。

希望这可以帮助其他人。

  • 运行`$ dotnet。/ project.dll`确实揭示了实际的问题,并解决了显然起作用的问题。 (10认同)
  • 这就是帮助我的原因。我运行`$ dotnet。/ project.dll`,然后按照建议去localhost:5000。在这里,我看到了导致我找到解决方案的错误日志。对我来说,这是appsettings.Development.json中的语法错误。去搞清楚。 (2认同)
  • 运行dotnet ./project dl可以!但是IIS无法运行它:( (2认同)

Sum*_*one 6

我尝试从VS2017发布到生产Windows 2016服务器后遇到此错误。(在我本地的Win10 PC上的IIS Express中,它运行良好。)

我更新了程序包,匹配了所有版本,并更新了代码,匹配了.net核心版本,重新启动了IIS,重新启动...不好意思。

在“发布”>“配置”>“设置”(左标签)中,我必须将“目标运行时”从“便携式”设置为“ win-x64”(或与您的环境相关的任何东西)。我还选择了“在目标位置删除其他文件”。

默认设置为“便携式”。我不确定“可移植”运行时如何正常工作,但是如果您不需要“可移植”运行时,可能会节省一些时间。

在此处输入图片说明


The*_*n94 -3

我的解决方案:

  • 删除所有带有目录的项目
  • 创建新项目
  • 复制除program.cs和startup.cs之外的所有文件
  • 手动从启动和程序类复制到新的startup.cs和新的program.cs

作品。