Kestrel是一个内置于ASP.NET Core的HTTP服务器。
我正在使用面向 .net 7 的 .net core api 项目开发一个文档存储库,并使用最少的 API。作为权宜之计,上传的文件将作为文件保存到本地连接的服务器
如何在 Kestrel Web 服务器上监控/记录文件上传进度?
我正在尝试在服务器端监控当前文件的上传进度。我找不到拦截上传事件来记录文件上传进度的方法。我正在上传大文件,所以这个功能...
我正在使用面向 .net 7 的 .net core api 项目开发一个文档存储库,并使用最少的 API。作为权宜之计,上传的文件将作为文件保存到本地连接的服务器
c# app.Run() 失败,因为 UseKestrel() 没有等待配置默认值
我尝试了以下两个功能来配置Kestrel: public static void UseKestralConfigurations(此 WebApplicationBuilder 构建器) { _ = 构建器.服务.配置 我尝试了以下两个功能来配置Kestrel: public static void UseKestralConfigurations(this WebApplicationBuilder builder) { _ = builder.Services.Configure<KestrelServerOptions>(options => { options.ConfigureHttpsDefaults(options => { options.ClientCertificateMode = ClientCertificateMode.AllowCertificate; options.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; //options.ClientCertificate options.ClientCertificateValidation = (cert, chain, policyErrors) => // Certificate validation logic here // Return true if the certificate is valid or false if it is invalid true; options.CheckCertificateRevocation = false; options.ServerCertificate = LoadCertificate(); }); }); } 还有更现代的 UseKestrel(): public static void UseKestrel(this WebApplicationBuilder builder) { builder.WebHost.UseKestrel(options => { options.ConfigureHttpsDefaults(defaults => { defaults.ClientCertificateMode = ClientCertificateMode.AllowCertificate; defaults.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; // defaults.ClientCertificate defaults.ClientCertificateValidation = (cert, chain, policyErrors) => // Certificate validation logic here // Return true if the certificate is valid or false if it is invalid true; defaults.CheckCertificateRevocation = false; defaults.ServerCertificate = LoadCertificate(); }); }); } 但这两种方法都不起作用。当我调试并第一次进入这个函数时,它甚至似乎根本没有运行Configure()或UseKestrel()。这是有道理的,因为它们在构建器构建时运行。 但是,当构建器构建并使用 var app = builder.Build() 创建应用程序时,内部函数:options.ConfigureHttpsDefaults() 永远不会运行。它只是完全跳过这个功能。并且从不配置 ServerCertificate。因此,当应用程序运行时(app.Run()),它立即抛出以下错误: {"The endpoint HttpsInlineCertFile is missing the required 'Url' parameter."} 您可以尝试以下方法: var builder = WebApplication.CreateBuilder(args); builder.WebHost.ConfigureKestrel(op => { op.ConfigureHttpsDefaults(defaults => { defaults.ClientCertificateMode = ClientCertificateMode.AllowCertificate; defaults.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12; // defaults.ClientCertificate defaults.ClientCertificateValidation = (cert, chain, policyErrors) => // Certificate validation logic here // Return true if the certificate is valid or false if it is invalid true; defaults.CheckCertificateRevocation = false; .... }); });
考虑以下课程: 假类 { 公共 int 测试 { 得到;放; } } 现在我得到: [HTTPGet] [制作(MediaTypeNames.Application.Json)] 公共异步任务 考虑以下课程: class Fake { public int test { get; set; } } 现在我的GET: [HttpGet] [Produces(MediaTypeNames.Application.Json)] public async Task<IActionResult> Get() { var fake = new Fake { test = 1 }; return Ok(fake); } 结果=完美: { "test": 1 } 这是我的预期结果-以下是我所有的替代失败: 所以,我想做的是 not 使用类,而是它的底层 JSON 表示,所以我尝试了: [HttpGet] [Produces(MediaTypeNames.Application.Json)] public async Task<IActionResult> Get() { var fake = "{ \"test\": 1 }"; return Ok(fake); } 这让我: "{ \"test\": 1 }" 这显然不是我想要的 所以我在 Stack Overflow 上找到了另一个让我尝试的“答案”: [HttpGet] [Produces(MediaTypeNames.Application.Json)] public async Task<IActionResult> Get() { var fake = "{ \"test\": 1 }"; return Ok(JsonConvert.DeserializeObject(fake)); } 然后产生: {"test":[]} 我最后的尝试是 [HttpGet] [Produces(MediaTypeNames.Application.Json)] public async Task<IActionResult> Get() { var fake = "{ \"test\": 1 }"; return new JsonResult(fake); } 这让我: "{ \u0022test\u0022: 1 }" 我到底是怎么得到我的方法来返回我在第一次调用中得到的JSON,但是使用JSON字符串我实际上会返回? 为什么第二次尝试让我得到那个奇怪的JSON结果?
我有一个 .NET Core 3.1 Web API,我想控制它在返回 504 超时错误之前等待多长时间。 我在 Program.cs 中添加了以下代码: public static void Main(string[] args) =>
Azure App Services Linux - NetCore 3 with Kestrel - 修改最大标头大小
我正在使用 Kestrel 在 Linux 的 Azure App Services 中运行 NetCore 3.0 应用程序,我需要增加最大标头大小。 我正在通过代码配置它,它在我的 lo 中工作......
我在我的 ASP.Net Core 7 Web 应用程序中强制执行 https 和 nonwww,它与 Program.cs 中的以下代码配合使用效果很好: var 选项 = new Microsoft.AspNetCore.Rewrite.RewriteOptions() .
如何部署由 Kestrel 托管的 asp.net 核心 Web 应用程序,该应用程序应支持带有自签名证书的 https
我正在部署一个 asp.net core 3.1 web 应用程序。技术堆栈是: 在 linux 机器上作为 docker 容器运行;由 asp.net core 开箱即用的 Kestrel 服务器托管;在测试中使用自签名证书
在 ASP.NET Core 中是否可以为某个路由分配高优先级?
Kestrel 上的 ASP.NET Core 7 网站每秒处理数千个 API 请求。 我想要一个端点 /API/something_important ,它比处理所有其他
在 Ubuntu Linux 上的 Docker 中调用 Kestrel 上的 ASP.NET Core 应用程序时超时
我无法在 Ubuntu 20.04 上的 Docker 中运行一个简单的 ASP.NET Core Hello World 应用程序。当我运行 Docker 容器时,Firefox 只是挂起并最终超时。如果我尝试你也一样......
我使用每 90 天更新一次的 Let's Encrypt 证书,我想知道是否有一种方法可以在不重新启动 kestrel 服务器的情况下重新加载证书。 我在 githu 上试过这个答案...
我通过 kestrel 听过两个本地端口,效果很好。 网站建设者 .UseKestrel(opt => { // http 请求 opt.ListenLocalhost(5000); // 简单的 TCP
使用 SSL 在 Ubuntu Linux 上的 Docker 中的 Kestrel 上获取 ASP.NET Core 应用程序时遇到问题
我无法使用 SSL 在 Ubuntu 20.04 上的 Docker 中运行一个简单的 ASP.NET Core Hello World 应用程序。以下是设置详情: 开发环境是 Windows 上的 Visual Studio 2022 ...
我的情况是这样的。我有一个ASP.NET Core REST API,使用Kestrel通过IIS反向代理(通过AspNetCoreModule)。在一个特殊的端点上(硬件设备所需),我发送了一个'... ...
AWS Lambda与Kestrel .NET Core的性能比较
我想使用.NET Core开发一个Web API,需要能够处理大量的并发请求。此外,WebAPI需要连接到一个数据库。该Web API将...
我想通过授权的http请求重新启动Kestrel(asp.net core 3.1)。Kestrel包含在一个Windows服务中,被配置为在失败时自动重启。据我所知,...
kestrel-dotnetapp.service。在步骤EXEC中生成usrlocaldotnet失败。许可被拒绝
我试图在Centos8中安装.NET Core(3.1)应用程序,使用MS中给出的步骤输入.NET Core(3.1)应用程序。服务文件按照微软文档etcsystemdsystemkestrel-dotnetapp.service [Unit] Description= .NET ....
我有一个服务 Fabric 设置,我有一个微服务,在端口 443 上注册并使用 https。我的集群设置中有一个反向代理。反向代理是用证书保护的。I ...
我需要在容器内运行的web应用上支持http2,我很难配置Kestrel用我的自签证书运行http2。我想问的是,有没有一个 ...