Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IdentityServer4与ASP.Net核心应用程序:性能问题-太慢_C#_Asp.net_Asp.net Core_Asp.net Core Mvc_Identityserver4 - Fatal编程技术网

C# IdentityServer4与ASP.Net核心应用程序:性能问题-太慢

C# IdentityServer4与ASP.Net核心应用程序:性能问题-太慢,c#,asp.net,asp.net-core,asp.net-core-mvc,identityserver4,C#,Asp.net,Asp.net Core,Asp.net Core Mvc,Identityserver4,我有一个ASP.Net核心Web应用程序和一个单独的IdentityServer4 STS应用程序,UI在IIS上运行。IS4使用PostgreSQL 用户单击登录 应用程序尝试加载默认页面(Loading.cshtml),IS4检查用户是否未经授权,并重定向到IS4登录页面 用户通过IS4 UI登录,并被重定向到ASP.Net核心应用程序 问题是 第一组调用,检查未经授权的访问和重定向到登录页面需要8-9秒 身份验证后的第二组调用重定向到ASP.Net核心应用程序需要25-28秒 该应

我有一个ASP.Net核心Web应用程序和一个单独的IdentityServer4 STS应用程序,UI在IIS上运行。IS4使用PostgreSQL

  • 用户单击登录
  • 应用程序尝试加载默认页面(Loading.cshtml),IS4检查用户是否未经授权,并重定向到IS4登录页面
  • 用户通过IS4 UI登录,并被重定向到ASP.Net核心应用程序
问题是

第一组调用,检查未经授权的访问和重定向到登录页面需要8-9秒

身份验证后的第二组调用重定向到ASP.Net核心应用程序需要25-28秒

该应用程序在调试模式下运行良好,但在Azure中托管时,我发现了这个性能问题

技术信息:

  • 证书(pfx文件)托管在Azure中,采用2048/sha256加密。有人说加密部分可能需要时间,所以将其保持在最低级别
  • 已为IS4中的所有存储启用缓存
我不确定我遗漏了什么,但这种缓慢的表现是不可接受的。你能帮忙吗

更新1:包括Azure AppInsights数据

更新2-已解决:找出导致性能问题的原因

我认为是Ids4 API调用导致了问题,因此升级了Azure AppService计划,但仍然没有看到任何差异。后来注意到有将近35+个脚本正在执行

因此,将Azure PostgreSQL计划从基本更新为下一层通用,性能大幅提高。问题在于Azure PostgreSQL的吞吐量

区别如下:

我建议使用Azure AppInsights来了解时间花在哪里。正常的令牌签名操作过于密集,因此我不必担心-真正昂贵的(设计上)是密码散列。我建议您使用Ids4和azure sql server。尝试在本地服务器上部署应用程序,否则您必须向azure支付更多费用,以使其像在本地开发人员pc上一样顺利运行。azure还不错,但它要求您必须仔细修改代码。我不确定它是否是IdentityServer4。@DanNguyen Ids4在Azure应用程序服务计划P2V2上运行,总ACU为420,内存为7 GB,Dv2系列计算等效,我认为这对于Ids4 STS来说已经足够了。它使用PostgreSQL。谢谢@DanNguyen。我用本地数据库在本地部署了Ids4,一切工作都完美无缺。我瞄准了Azure PostgreSQL并开始发现问题。我找到了根本原因并在描述中进行了更新。请通过将您的帖子标记为答案来锁定问题,或将答案转发到下面。