我正在使用JetBrains的Rider,这使我意识到直接通过Kestrel配置https会使对API的请求非常缓慢。如果我刚刚运行
dotnet MyApi.dll
当我使用Visual Studio并在IIS Express上运行API时,我没有任何性能问题。
这就是我配置Kestrel以监听https
X509Certificate2 cert = null;
using (var store = new X509Store(StoreName.My))
{
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectName, "localhost", false);
cert = certs[0];
}
WebHost.CreateDefaultBuilder(args).UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 44317, listenOptions =>
{
listenOptions.UseHttps(cert);
});
})
.UseStartup<Startup>()
.Build();
我试图删除https并仅使用http,它的运行速度与IIS Express一样快。因此,它告诉我配置https的方式存在问题。
是否缺少我在激活https时使Kestrel变慢的配置,还是在IIS Express上运行它会更好呢?