具有121子状态的HTTP500错误表示什么

我有一个 Web 应用程序在 Azure 中运行,我有一些服务器无响应的中断。当我查看 IIS 日志时,我看到 HTTP 500 错误,sc-substatus为 121,sc-win32-status为 0。

我有一个 Web 应用程序在 Azure 中运行,我有一些服务器无响应的中断。当我查看 IIS 日志时,我看到 HTTP 500 错误,sc-substatus为 121,sc-win32-status为 0。

省略所有其他字段,日志看起来像这样,按以下顺序:

sc-status sc-substatus sc-win32-status
500 121 0

我在网上找不到 500.121 错误的参考。

14

我刚从一个 Azure 软件工程师那里得到这个:

121 是一个超时事件,这基本上意味着请求在工作虚拟机上花费了 230 秒,而没有在连接上启动任何读 / 写 IO。

IIS 日志都有一个时间值徘徊在 230 秒左右。神秘解决了。

4

我们看到了同样的问题。

TLDR

我们在 Azure SQL 数据库中使用始终加密。

我们使用 Azure Key Vault 存储主密钥。

我们发现为旧版本的 Azure Key Vault 提供程序记录了以下错误-https://support.microsoft.com/en-us/help/4016853/fix-deadlock-when-apps-try-to-acquire-or-refresh-an-authentication-tok

解决方案-我们将 Azure Key Vault 提供程序从 1.x 版本升级到最新的 2.1.0 版本-https://www.nuget.org/packages/Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider/2.1.0

Symptoms

我们开始生产 500 / 121。

所有响应时间都超过 230 秒。

问题总是相隔 2 小时发生...有时稍长。

Logging

我们自己的日志显示什么都没有。

ELMAH 什么也没显示。

失败的请求跟踪未显示任何内容。

唯一的指示是在 IIS 日志中。

我们还从 Azure 门户的应用服务中的诊断和解决问题选项卡中收集了一些.Net Profiler Traces,并包含了线程堆栈。我们注意到有许多线程堆栈正在做与 Always Encrypted 相关的事情。这只是有点奇怪,但这是最终让我们将 Always Encrypted 视为罪魁祸首的东西。

复制

这段代码在 4 个不同的环境中。

它只发生在两个环境中。

我们没有什么会导致它发生。

MS 支持问题

https://support.microsoft.com/en-us/help/4016853/fix-deadlock-when-apps-try-to-acquire-or-refresh-an-authentication-tok

请考虑以下情况:

You have Microsoft .NET Framework applications that use Always Encrypted in SQL Server 2016 or Azure SQL Database.
The column master keys for these applications are stored in the Azure Key Vault. 

在这种情况下,应用程序会遇到死锁。因此,应用程序将变得无响应(挂起)或超时。

在尝试获取或刷新 Azure Key Vault 的身份验证令牌时可能会发生死锁。

Azure Key Vault Provider v2.1.0 发行说明

https://www.nuget.org/packages/Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider/2.1.0

此版本解决了所有以前版本中存在的可能导致多线程应用程序死锁的错误。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(882)
使用锥形窗口计算运行平均值(tapered mean)
上一篇
网站没有加载没有 https://www
下一篇

相关推荐

  • http 测试服务器:测试 HTTP 服务器的性能

    HTTP测试服务器是一种用于测试HTTP客户端的软件,它可以模拟HTTP服务器,并返回指定的HTTP响应。它主要用于开发和测试Web应用程序,以确保它们能够正确处理HTTP请求和响应。…

    2023-05-09 04:23:01
    0 93 71
  • okhttp源码实现HTTP请求和响应

    OkHttp源码是一个开源的HTTP客户端,它可以帮助Android和Java应用程序快速、简单地创建网络请求。它是一个简单的HTTP客户端库,可以轻松地处理HTTP请求和响应,并且可以帮助用户构建更好的网络应用程序。…

    2023-12-19 08:42:49
    0 85 94
  • http接口调试从零开始学习 HTTP 接口

    HTTP接口调试是一种技术,用于测试Web应用程序的HTTP接口。它使开发人员能够以可靠的方式测试HTTP接口,以确保它们正常工作,并且可以在服务器上运行。…

    2023-08-22 04:02:43
    0 39 71
  • https服务器保障您的数据安全

    HTTPS服务器是一种使用安全套接字层(SSL)协议来传输信息的Web服务器。它使用SSL/TLS协议来为发送到服务器的数据提供安全性,以防止黑客或其他攻击者拦截或窃取数据。HTTPS服务器还可以验证客户端的身份,以确保只有特定的客户端才能访问服务器上的数据。…

    2023-03-03 15:50:16
    0 14 38
  • http 500内部服务器错误:服务器出现500内部错误,请求失败!

    HTTP 500内部服务器错误是由于服务器端出现问题导致的一个通用错误代码。它表明服务器无法处理请求,可能是由于服务器上的代码出现了错误,或者服务器上的资源不足,或者服务器上的某些组件出现故障。…

    2023-06-12 13:41:22
    0 98 84
  • http云服务器极速部署,提升业务效率

    HTTP云服务器是一种基于云计算技术的服务器,可以用来提供Web应用程序、数据存储和其他服务。它可以提供高可用性、可扩展性和安全性,并且可以按需自动伸缩。…

    2023-01-30 04:15:32
    0 41 41
  • php发送get请求使用PHP实现HTTP GET请求

    PHP发送GET请求的方式有两种:使用file_get_()函数…

    2023-03-13 12:45:11
    0 40 39
  • http的网页:浏览器如何加载 HTTP 网页

    HTTP(超文本传输协议)是一种用于从Web服务器到Web浏览器的双向通信协议。它使得Web浏览器能够请求并接收Web服务器上的文件。…

    2023-02-19 02:37:55
    0 27 34

发表评论

登录 后才能评论

评论列表(79条)