已编辑 - 如何修复 Linux 上的“ERR_CONNECTION_RESET”.Net Core Web API

问题描述 投票:0回答:1

我正在设置一个 Linux 服务器来托管 .net core 应用程序。 我已经配置了.net core sdk和nginx。

在尝试在那里发布我的应用程序之前,我已经使用 .net core 提供的示例进行了测试。

首先,我使用“dotnet new mvc”创建了一个简单的 mvc,并且运行良好。然后我使用“dotnet new webapi”创建了一个 webapi 示例。它也工作得很好。当我调用端点 /api/values 时,它返回了结果,但只持续了几秒钟。

大约 15 秒后,它开始使用 Chrome 抛出 “ERR_CONNECTION_RESET”。当我停止应用程序并再次运行它时,API 工作正常,但几秒钟后再次停止。

我的 webapi 应用程序与其他端点也会发生同样的情况。

我正在使用 .Net Core 2.1.301-5Linux Redhat。我已经尝试添加下面的代码,但效果不佳。

services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

有人知道我能做什么来解决这个问题吗?


编辑:

我发现只有当我在 Program.cs 上使用 WebHost.CreateDefaultBuilder(args) 时才会发生这种情况。当我使用 new WebHostBuilder() 代替时,错误不会发生,但我无法从 appsettings.json 获取配置。

c# linux asp.net-web-api asp.net-core .net-core
1个回答
0
投票

我与其他人分享这个,因为在我的场景中,我花了超过两周的时间来解决问题并找出问题所在。我更改了 nginx ConfgiMap 中的参数:

keep-alive-requests: '1000'

您可以在此处阅读更多详细信息https://stackoverflow.com/a/78368968/6655459

© www.soinside.com 2019 - 2024. All rights reserved.