小编Jul*_*glo的帖子

在 Asp.Net Core 中的 https 上下文中调用 HttpClient 时速度很慢

我有一台使用 Asp.Net Core 的服务器,但在使用 HTTPS 时遇到延迟问题。当仅获取少量图像时,每个请求大约需要 20 毫秒来处理。然而,当我同时发出 125 个请求时,使用 HTTP 时,速度会减慢至 30-80 毫秒(可接受),而使用 HTTPS 时,速度会减慢至 130-850 毫秒(不可接受)。

我已经做了一些调试,当我的服务器对 WMS 服务器进行 http 调用时,速度会变慢。

添加自定义套接字处理程序将延迟从 4000-6000 毫秒减少到当前的 130-850 毫秒,这有很大帮助,但延迟仍然有点多。

PS:服务器将做的不仅仅是代理查询,所以我不能简单地使用专用的代理服务器来扮演该角色。

这是服务器代码的最小示例:

using System.Diagnostics.Tracing;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;

using var socketHandler = new SocketsHttpHandler()
{
    PooledConnectionIdleTimeout = TimeSpan.FromMinutes(10),
    PooledConnectionLifetime = TimeSpan.FromMinutes(10),
    MaxConnectionsPerServer = 1,
};

using var httpClient = new HttpClient(socketHandler);

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddSingleton(httpClient);

var app = builder.Build();
app.MapControllers();
app.Run();


[ApiController]
[Route("[controller]")]
public class WMSController : ControllerBase
{
    private …
Run Code Online (Sandbox Code Playgroud)

c# https asp.net-core

6
推荐指数
1
解决办法
2764
查看次数

标签 统计

asp.net-core ×1

c# ×1

https ×1