【问题标题】:Identity server 4 - GetToken slowness intermittently身份服务器 4 - GetToken 间歇性缓慢
【发布时间】:2021-09-12 06:55:31
【问题描述】:

我们已经为我们的 API 套件实施了身份服务器 4,并且我们为使用我们服务的客户端提供了 6 秒的 SLA。

我们观察到,为所有客户端生成令牌的当天第一次请求大约需要 6-7 秒,后续请求需要 100-200 毫秒。

我们无法查明造成这种情况的设置,因为我们没有重置 AppPool/IIS。

如有任何帮助,我们将不胜感激。

PS:我们从数据库中获取客户端,所有的令牌设置都在这里设置。

【问题讨论】:

  • 如果应用程序被回收(通过 IIS),那么应用程序需要很长时间才能从头开始启动 dbcontext。您可能会受益于使用 EF Core 6 的编译模型devblogs.microsoft.com/dotnet/…
  • 让我通过添加更多日志来尝试您的建议。应用程序未回收 如果重新初始化应用程序,您的建议是有意义的,IIS 上是否有默认的回收时间?
  • 我只是添加一个定期 ping 实例的服务,以确保它始终运行。
  • 每个唯一客户需要 6-7 秒还是只有一个 6-7 秒的请求?
  • 每个唯一客户需要 6-7 秒

标签: performance identityserver4 access-token


【解决方案1】:

好的,这里是关于正在使用的令牌生成代码问题的更新:

 var disco = await client.GetDiscoveryDocumentAsync(new 
 DiscoveryDocumentRequest()
        {
            Address = configuration.GetSection(IdentityServer).Value,
            Policy = { RequireHttps = false }
        });

因为我们使用 JWT 调用 CreateDiscoveryDocument 是不必要的,身份服务器 URL 可以直接传递。更改此设置节省了几秒钟。

但是,我仍然想知道为什么每个客户都会有这样的想法?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多