- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到的问题是我的 IdentityServer 的/connect/introspect 端点有时真的很慢(一次调用需要 10 秒)。正如您在下面看到的,大多数调用 (18k) 执行得很快 (<250ms)。
我启用了新的 Application Insights profiling大多数缓慢的轨迹看起来像这样:
正如在 Application Insights profiler page 上所说:
BLOCKED_TIME
indicates the code is waiting for another resource to be available, such as waiting for a synchronization object, waiting for a thread to be available, or waiting for a request to finish.
但我没有理由相信这应该是在等待什么。请求没有激增,所以我认为没有足够的可用线程或其他东西。内存对于我们的应用服务计划来说似乎不是问题,因为它总是在 40% 左右。我还深入研究了 IdentityServer4 的来源但无法确定造成这种情况的任何原因。所以现在我有点卡住了。谁能指出这些缓慢请求的可能原因?或者指出我确定原因的正确方向?任何帮助将不胜感激!
编辑一些额外信息:我们使用 IdentityServer4.EntityFramework将引用 token 存储在 sql azure 数据库中。我查看了 Application Insights,发现那些慢速请求中的查询执行时间不到 50 毫秒。所以我猜这不是数据库。
最佳答案
查看信息,您的所有请求都在 3222 毫秒左右,直到您开始序列化您的 JSON。当您开始将数据序列化为 json JSON 时,请求会跳到 5589 毫秒,当您反序列化它时,它会跳到 8811 毫秒。
这里的问题不是数据库,数据库获取数据的速度可能不够快。不是您没有的请求激增,也不是不存在的内存问题。
问题在于您正在获取大量数据,并且编译器在序列化和反序列化数据时可能会受到惩罚,这两种操作都非常昂贵。
您必须将您的列表安排为 JSON,然后将其反序列化为您可以再次访问的对象。
查看这些调用之间发生的情况、您正在序列化和反序列化的数据量以及之后发生的情况。
那是你的 key 。
关于c# - IdentityServer4/Newtonsoft.Json 中的探查器 BLOCKED_TIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45956330/
在登录并同意后使用任何标准身份提供者(谷歌、Facebook)时,他们会重定向到我的主要身份服务器,并让它重定向到在其中注册的隐式客户端。我如何使用另一个身份服务器作为外部身份提供者实现相同的行为?
我正在开发一个 SPA Web 应用程序,并且我正在使用 IdentityServer4 代码流来处理授权。所以我有以下组件: Angular 客户端应用程序,https://localhost:50
我正在设置 IdentityServer 的一个新实例作为身份提供者。登录时,我想在我的用户对象上设置一些额外的自定义声明。现在,我正在使用以下代码: [HttpPost] public async
我正在尝试遵循本指南 https://identityserver.github.io/Documentation/docs/advanced/customizingViews.html通过将 ass
当使用 IdentityServer 3 时签名证书(用于签名 jwt token )过期会发生什么? 我不清楚,我找不到任何文档,除了可能会收到它已过期的警告。 (Ref. https://iden
我有一个使用 IdentityServer4 进行 token 验证的 API。 我想使用内存中的 TestServer 对这个 API 进行单元测试。我想在内存中的 TestServer 中托管 I
我正在尝试将 Identity Server 4 与 Ocelot 集成并对 WebApp (asp.net core 3.1) 进行身份验证,然后在请求通过身份验证时访问 api。 为此我创建了一个
如果您有多个客户端和一个处理用户身份验证的中央 IdentityServer 4 实例,您将如何管理各个客户端的用户配置文件? 当前情况: 用户点击“管理个人资料” 用户被重定向到 IdentityS
我正在开发一个带有 angular 的前端应用程序和一个带有 Asp.Net Core 的后端应用程序,其中包含用于身份验证的 IdentityServer4(基于此 github project)。
我有一个包含用户的数据库,我该如何开始使用 IdentityServer 创建我的用户的自定义实现?我看到的所有示例都使用了用值硬编码的 InMemoryUser。 有人可以关注this作为指南? 最
我们公司有一个 SSO 应用程序,我希望用 IdentityServer4 或 3 替换大部分身份验证管道。我要替换的版本有自己的动态客户端注册自定义实现(不符合规范)和一个 UI 来管理它。 有nu
我正在使用 IdentityServerV3 对少数客户端的用户进行身份验证。我在配置 IdentityServer 时遇到问题,特定的 user 必须能够登录到特定的“客户端”。 让我们来看下面的场
目前我们正在使用 JWT token 进行身份验证(有效),但我想使用引用 token 。目前我们的配置是这样的: public static class Config { ///
我在启动 IdentityServer 3 时遇到问题。这是一个非常简单的设置,我打算将其用于开发环境,但我在诊断问题时遇到了问题。这是我的代码: Startup.cs using Owin;
我正在使用来自 IdentityServer 4 实例的 OAuth2。基于this example ,我能够登录并调用服务器托管的 API。 如何在不显示提示用户确认注销的 Web View 的情况
我是 IdentityServer 3 的新手,示例和教程使用的是 InMemory 用户、客户端和范围,但我需要这些来自 DB。所以我做了: 启动.cs public void Configurat
我一直在阅读和观看有关 Identity Server 4 的大量内容,但我仍然对它感到有些困惑,因为它似乎有太多的事件部分。 我现在明白这是一个单独的项目,它负责对用户进行身份验证。我仍然不明白的是
我似乎无法理解为什么我会从 IdentityServer 获得 unauthorized_client。我将 oidc-client 与 Angular 4 ui 和 Web API 的 asp.ne
我在 IdentityServer 中设置了以下客户端: new Client { ClientName = "My web application", Enabled = true,
在本地,我有一组 Web 应用程序都可以通过一次登录访问。 为此,我采用了 Identity Server 4。 一旦应用程序发布在本地服务器上,无法远程访问,我就通过 openssl 生成了一个 S
我是一名优秀的程序员,十分优秀!