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

C# HTTP错误502.5-升级到ASP.NET Core 2.2后ANCM进程外启动失败,c#,asp.net-core-2.2,C#,Asp.net Core 2.2,将我的项目升级到ASP.NET Core 2.2后,我尝试运行该应用程序(当然是在本地运行),浏览器显示了一条错误消息,如下面的屏幕截图所示 visual studio错误资源管理器不再通知任何错误。我不知道发生了什么。我遇到了这个问题,有了不同的解决方案。对我来说,我有一个与应用程序过时的包(我在NuGet上更新了它,并且库在生产中没有被替换)。更新包为我修复了它 注意:我必须手动运行带有项目dll的dotnet.exe,才能看到为我修复它的消息 希望这对其他人有所帮助。在我的情况下,我将一

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


visual studio错误资源管理器不再通知任何错误。我不知道发生了什么。

我遇到了这个问题,有了不同的解决方案。对我来说,我有一个与应用程序过时的包(我在NuGet上更新了它,并且库在生产中没有被替换)。更新包为我修复了它

注意:我必须手动运行带有项目dll的dotnet.exe,才能看到为我修复它的消息


希望这对其他人有所帮助。

在我的情况下,我将一些nuget软件包升级到了net core 2.2,但我没有安装net core 2.2 sdk,所以我去net core网站下载了最新的sdk或运行时软件包,然后我作为管理员在CMD中执行了一个
净停止was/y
净启动w3svc
。问题已为我解决。

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

我更新了包,所有版本都匹配,并且在我的代码中更新了.net核心版本匹配,重新启动IIS,重新启动。。。没有快乐

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

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

一般来说,如果我的环境中有不匹配的东西,我会得到这个错误。例如,有一次我将一个项目从2.2升级到.Net Core 3.1,但没有在服务器上安装ASP.Net Core运行时托管捆绑包:

此外,如果对于启用32位应用程序,应用程序池设置为True,则可能会出现此错误。尝试:

IIS管理器>应用程序池>应用程序池名称>(右键单击)高级 设置>启用32位应用程序=错误


此错误开始出现在我们的开发服务器上。我一直在使用这个publish命令,它创建一个“自包含”的文件文件夹以供部署

dotnet publish -c release -r win7-x64 --output:bin/self_contained
我的解决方案是使用以下命令发布“依赖于框架”的部署:

dotnet publish --output:bin/framework_dependent
dev服务器确实在该文件夹中安装了几个版本的.NET Core(2.2.3和2.2.5)*
C:\Program Files\dotnet\shared

我仍然不清楚为什么自成一体的出版物不起作用。您可能认为自包含发布是更可靠的方法,但在我的情况下,它不是


这很有帮助。

我今天在主机上遇到了这个问题-在本地一切正常,但一旦我发布,就会出现这个错误

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
我查看了这些包,发现一些.net核心的东西升级到了3.0预览版

然后,我将VS2019中的构建选项从“依赖框架”更改为“自包含”。构建和发布花费了5倍的时间,但现在可以正常工作了


现在,我正在与主机技术支持部门核实可能存在的问题-官方上,他们只支持2.1/2.2,因此这可能是3.0预览版中的这些包,但是目标版本是2.2。

在我的情况下,是appsettings.json中的日志级别设置不正确。我没有收到警告,而是收到了警告,导致应用程序因上述错误而崩溃。

我在部署Windows server上以.Net framework为目标的.Net core应用程序时遇到了相同的错误。我检查了服务器上的事件查看器,发现服务器上没有安装.net 4.7.2


安装它为我解决了问题。

我的问题是格式不正确的appsetttings.json文件。我通过web.config启用了标准输出日志记录,并能够获得引发此错误的底层异常。

另一个导致我出现此问题的场景:

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

我正在使用服务帐户运行应用程序池标识,我必须在此用户下运行
dotnet dev certs https
,以在启动期间摆脱“System.InvalidOperationException:无法配置https endpoint.”。

如果重置项目并手动复制程序和启动类对您有效,然后很明显有什么事情搞砸了。这有一些更大的潜在问题。使用进程外托管模型是可以的,但是使用.Net Core 2.2,您应该能够使用进程内托管模型,因为它自然更快:所有内容都在IIS中处理,IIS和应用程序的Kestrel服务器之间没有额外的HTTP跳

如果在visual studio解决方案资源管理器中右键单击项目文件,请确保AspNetCoreModuleName标记具有AspNetCoreModuleV2值(与旧的AspNetCoreModule相反)。此外,请检查Windows应用程序事件日志以确定潜在的罪魁祸首。尽管那里的错误消息有些神秘,但它们可能会将您指向导致失败的代码中的确切行号


最后,如果将CI/CD与TFS一起使用,则appsettings.json文件中可能存在未正确替换为实际值(URL等)的环境变量。

项目发布时也会发生同样的故障。 该问题与最新的Microsoft.AspNetCore.App软件包有关。只需将其从2.2.x下调到2.2.0
或者转到dotnet.microsoft.com/download/dotnet core/2.2,获取最新的dotnet主机安装程序看起来我也遇到了同样的问题。这是因为如果解决方案中没有global.json文件,那么VS build(publish).net core应用程序的最新版本已安装在您的电脑上。因此,我将执行下一个解决方案:

加一个g
<?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>
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
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\bin\Debug\netcoreapp2.0\logs\stdout">
<aspNetCore processPath=".\web.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />