问题标签 [kestrel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
432 浏览

asp.net-core - .net core ubuntu 使用服务时更改端口

使用该服务时,我正在尝试在不同的端口上测试运行 .net 核心。

但是,我不断收到状态码为 140 的错误。

这发生在我的两次尝试中:

1)在服务文件中 添加 --server.urls= http://0.0.0.0:555 2)在 Program.cs 中ExecStart=/usr/bin/dotnet /dotnetcore/published/TestingWebApi.dll 添加 UseUrls(" http://0.0.0.0:555 ")

当我使用 dotnet run --server.urls=http:0.0.0.0:555它工作的代码手动运行它时。

有人设法使用该服务获得它吗?

0 投票
0 回答
2080 浏览

.net - .net 核心 Kestrel 服务器 SSL 问题

我在.Net Core 上使用 Kestrel 实现基本 SSL 服务器时遇到了一些问题。

我的目标是最终创建我自己的 Alexa 技能端点,我已经在树莓派上的烧瓶上运行了一个基本版本。但我是一个 .net 人,我真的很想利用我所知道的并且可以更好地理解 .net 核心在 Raspberry Pi 3 上的 Windows IOT 上的内容。

我遵循了一些关于如何使用 Kestrel 实现 SSL 服务器的非常模糊的教程,除了一个问题外,我可以启动并运行它。唯一有效的 SSL 证书是使用 powershell 创建的 windows 生成的 PFX 证书。

在我尝试将证书上传到技能端点中的 Alexa 开发人员控制台之前,这不是问题,它不接受 PFX。

因此,我切换到 openssl 并创建了一个证书,我的代码似乎可以接受并运行该证书,而且我还可以将 .cer 文件上传到 Alexa Skills 中。

问题是当任何尝试连接到服务器时,我得到以下异常:

或者

理想的情况是能够创建一个看起来可以正常工作的 PFX 证书(我可以浏览到服务器并且没有任何异常,只是警告说非受信任的 CA 作为其自签名)。并从 Alexa Skills 接受的 PFX 文件生成等效的 .CER 文件。

不幸的是,我是 SSL 和证书的新手,只有基本的了解,所以我不确定真正的潜在问题是什么。

这是服务器代码,以防我遗漏任何东西:

顺便说一句,我也尝试过直接从 .UseHttps 加载证书,但存在同样的问题。使用 x509Certificate2 是一个想法,也许这是正确的方法,但仍然没有乐趣。

应用程序运行良好只有当我从 Alexa 或浏览器访问服务器时才会出现异常。如果我使用 PFX windows 生成的证书无法从 Alexa 访问,则没有例外!

0 投票
1 回答
4823 浏览

azure - .NET Core 2.1 Azure Web App:指定的 CGI 应用程序遇到错误,服务器终止了进程

我在 Azure Web App 服务中托管我的 ASP.NET .NET Core 2.1 项目。我最近升级到 2.1(从 2.0),我开始收到这些错误:

指定的 CGI 应用程序遇到错误,服务器终止了进程。

该应用程序通常可以正常运行一个小时左右,然后突然崩溃并且所有响应都返回此错误。我必须重新启动它才能使错误消失。它在 .NET Core 2.0 上运行良好。

我在 SO 上看到了与早期 Kestrel 版本相关的类似问题。对我来说不应该是这样。我的项目引用了具有最新 Kestrel 版本的 Microsoft.AspNetCore.App 2.1.1。

这是我的生产环境,请帮忙。

0 投票
0 回答
540 浏览

https - 微服务:只能使用 KestrelServerOptions.Listen 配置 Https 端点

我正在研究微服务中的 IdentityServer。我发出了例外:

System.InvalidOperationException: 'HTTPS 端点只能使用 KestrelServerOptions.Listen() 进行配置。'

我将 UseKestrel() 放在 Program.cs 文件的 BuildWebHost 中。我还需要配置什么。我可以在 eShopOnContainer 项目下看到一个 Certificate 文件夹。我如何生成这些文件。

这是身份服务器 docker.compose 配置:

0 投票
2 回答
1485 浏览

c# - ASP.NET Core:调用之间的空闲超时有延迟

我有一个在 Kestrel(Ubuntu)下运行的 ASP.NET Core Web API,我遇到了一个奇怪的情况:当我运行前 20 个 API 调用系列时,前 3-5 个调用很慢,那么响应时间是好的。然后我做了一个短暂的延迟(可能是一分钟甚至更短)并再次运行一系列 API 调用,前几次调用又很慢,只有在前 3-5 次调用之后响应时间才正常。

最初,我认为问题出在 Kestrel 配置中,因此我进行了以下设置:

它帮助我使我的服务更快地工作,但问题仍然存在。

该服务的基本逻辑如下:1)获取请求对象 2)将其解析为 POCO 类的实例 3)使用多个 SELECT 调用 DB 以获取所有必需的数据(为此我使用 Dapper以及允许一次性运行多个 SQL 查询的方法) 4)用新接收的数据更新对象的实例并将对象插入数据库

而已。

而且我无法弄清楚是什么导致了这种延迟(空闲时间)。

我猜测也许我应该进行一些虚拟调用来保持服务运行。因此,我添加了一个包含 Timer 作业的 Singleton,以每隔一分钟查询数据库以获取一些查找数据。但它没有帮助。

然后我尝试添加另一个计时器作业来查询步骤 N3 中仅针对 DB 中的第一条记录所需的数据,没有一些特定的 req 参数并且它没有帮助,而且它开始工作的速度更慢。

我还在表上添加了索引,以使 SELECT 更快地工作,另外我在所有 SELECT 中添加了 WITH(NOLOCK) 语句,但它没有帮助。

有什么想法吗,伙计们?

0 投票
1 回答
1377 浏览

asp.net-core - NET Core 2.1 在 Google Cloud Platform 上无法验证 HTTPS 连接 TLS 握手失败,数据包格式意外

我正在尝试在 Google Cloud Platform 中设置我的网络应用程序并使用 https。当浏览器尝试通过 https 端口连接时,Kestrel 会报告以下内容:

我在我的生产代码中遇到了这个问题,但它也可以使用提供的示例代码轻松生成。如果您有谷歌云平台项目设置,以下是有关如何重现问题的说明:

  1. 打开 GCP 终端窗口
  2. sudo apt-get -y 安装 dotnet-sdk-2.1
  3. dotnet new razor -o HelloWorldAspNetCore
  4. cd HelloWorldAspNetCore/
  5. dotnet 开发证书 https
  6. 点网运行
  7. 将 Web 预览设置为端口 5001 并尝试打开。错误将显示在终端窗口中

完全相同的代码在 Windows PC 上运行良好。我还将 Windows 代码编译到 Windows 上的 linux docker 容器中并执行了 docker。如果代码在 docker 中执行,则会出现此问题,因此它似乎与运行 .net 代码的操作系统有关。我尝试使用 Wireshark 分析来自 Docker 映像的 TLS 数据包,但数据在前几个数据包之后被加密,并且没有出现任何错误。任何帮助,将不胜感激。

0 投票
0 回答
584 浏览

docker - 如何让我的 .net core 2.1 Web 应用在 2 个端口上监听

我有一个 .net core 2.1 Web 服务,我正在尝试设置它与 Docker 一起运行。我正在尝试在端口 8081 上公开我的 App Metrics 健康检查,在端口 80 上公开我的 Web 服务 API 的其余部分。

当我在我的 dotnet 发布文件夹上进行 docker 构建和运行时,我收到以下错误。这样做的正确方法是什么?

这是我的设置...

Dockerfile

程序.cs

0 投票
1 回答
123 浏览

performance - .NET COre kestrel 请求处理性能失败

我正在做一些性能测试,我发现处理未经授权的请求存在问题,我使用授权过滤器从标头中检查 JWT,将 CPU 使用率提高到 100% 非常简单,每秒只有 100 个请求,性能分析器显示大部分时间被 DefaultFilesMiddleware 使用,实际验证只需要请求执行时间的 5%。

该应用程序作为独立的控制台应用程序运行。

我可以以某种方式提高性能,还是有很好的设置指南?

0 投票
1 回答
2669 浏览

iis - ASP.NET Core 2.1 给我 HTTP 错误 502.5 - 进程失败

使用将 .NET Core 2.1 应用程序部署到服务器后,访问页面时出现以下错误:

HTTP 错误 502.5 - 进程失败

按照微软在同一页面上总是有用的链接(咳嗽),我检查了事件视图日志,它指出:

物理根目录为“D:\inetpub\vhosts\BLAH.com\httpdocs\”的应用程序“MACHINE/WEBROOT/APPHOST/BLAH.COM”无法使用命令行“dotnet.\blah.dll”启动进程,错误代码 = '0x80070002: 0。

该消息不仅没有帮助,而且完全无关紧要。我尝试在 web.config 中启用 Web 应用程序的日志记录:

奇怪的是,在我授予 IWPD 进程权限之前,没有在 Log 目录中创建任何文件。它创建的文件不在指定的 stdout 目录中,而是在父日志目录中。他们也是空的。

我使用以下命令从命令行运行 Web 应用程序:

dotnet .\blah.dll

该应用程序似乎正在运行,我可以在屏幕上看到一些消息,但在访问该站点时仍然遇到相同的 502.2 错误,而日志中没有其他信息。我遵循了 ASP.NET Core 2.1 的故障排除步骤,它提到了这一点:

如果向应用发出请求时出现错误,请向 Kestrel 侦听的主机和端口发出请求。使用默认主机并发布,向http://localhost:5000/发出请求。如果应用程序在 Kestrel 端点地址上正常响应,则问题更可能与反向代理配置有关,而不太可能出现在应用程序内部。

我从命令行运行 Web 应用程序并尝试使用http://localhost:5000访问它。我终于能够访问该站点,但我仍然通过 IIS 收到相同的 502.2 错误。

很明显 IIS 和 Kestrel 没有相互通信。我不明白为什么有两个 Web 服务器以及如何让它们相互通信。

0 投票
0 回答
9456 浏览

c# - asp.net core HTTP 错误 503. 服务不可用

事件查看器显示以下错误

工作进程无法预加载 .Net 运行时版本无托管代码。

工作进程未能正确初始化,因此无法启动。数据是错误的。

我能够从命令行运行dotnet website.dll并在 Web 浏览器中查看它,但由于某种原因 IIS 不运行 asp.net 核心网站。

我已经从这里安装了托管 dotnet 核心的 Windows 以及 sdk

https://github.com/dotnet/core/blob/master/release-notes/download-archives/

我已将 .net clr 版本设置为“无托管代码”。

我将身份更改为管理员以消除潜在的权限问题

另外,我必须将其更改.csproj为以下内容以解决冲突的 asp.net 核心版本