System.Threading.ThreadAbortException:线程被中止

2023-12-27

我在执行该过程时收到此错误。此问题仅出现在生产中,而不出现在测试和开发系统中。而且这个问题也不会一直发生。当出现此错误时,通过应用程序使用此数据库的所有用户都会被挂起,这意味着与数据库的所有用户连接都将被重置。几秒钟后它会恢复并正常工作。

错误信息是

System.Threading.ThreadAbortException: Thread was being aborted.
   at SNIReadSync(SNI_Conn* , SNI_Packet** , Int32 )
   at SNINativeMethodWrapper.SNIReadSync(SafeHandle pConn, IntPtr& packet, Int32 timeout)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean& marsCapable)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at Project1.Library.dbconn.OpenConn()
   at Project1.Library.clsUserMenuDAL.SubChildMenu(clsUserMenuBAL obj)

我正在使用的存储过程如下所示,

Alter PROCEDURE [dbo].[proc_LoadMainMenu]  
 @User_Gid [int] = 0,  
 @profile_gid [int] = 0,  
 @soft_gid [int] = 0  

WITH EXECUTE AS CALLER  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
    -- Insert statements for procedure here  
    declare @lsquery varchar(max)  
 set @lsquery=' select menu_gid,menu_desc,menu_link,menu_reportorder from qad_adm_tmenu a '  
 set @lsquery =@lsquery+' inner join qad_adm_tprofilerights b on b.profilerights_menugid=a.menu_gid'  
 set @lsquery =@lsquery+' inner join qad_map_tuserprofile c on c.userprofile_profilerightsgid=b.profilerights_gid'  
 set @lsquery =@lsquery+' where c.Userprofile_usergid ='+ convert(varchar(20),@User_Gid) + 'and c.userprofile_profilegid = ' + convert(varchar(20),@profile_gid) + ''  
 set @lsquery =@lsquery+' and a.menu_softgid= '+ convert(varchar(20),@soft_gid) +' and a.menu_ordernumber =2'  
 set @lsquery =@lsquery+' and c.Userprofile_isremoved = ''N'' and userprofile_profilerightsaccess=''Y''  
 order by menu_reportorder '  

 exec(@lsquery)  

END  

提前致谢...


他的问题仅出现在生产中,而不出现在测试和开发系统中。

我猜:ASP.NET 由于超时而中止了您的请求处理Thread.Abort。增加超时或优化 SQL 工作。

当出现此错误时,通过应用程序使用此数据库的所有用户都会被挂起

可能是因为您没有正确处理数据库连接,从而留下打开的连接、事务和锁。把所有东西都放进去using声明。你为什么不呢?

这意味着所有用户与数据库的连接都被重置

我认为这不是真的。你有证据证明这一点吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.Threading.ThreadAbortException:线程被中止 的相关文章

随机推荐

  • 使用 python 在 Windows 上进行多处理管道

    Windows 支持 multithreading pipes 吗 如果是 那么这段代码有什么问题 我需要使用减少吗 代码挂在 p2 recv 上 从命令行运行时出现运行时错误 import multiprocessing def Proc
  • Notes 的 UIActivityType 是什么?

    我试图从 UIActivityType 中排除除电子邮件和短信之外的所有服务 我正在使用以下语句 activityController excludedActivityTypes UIActivityTypeAddToReadingList
  • 将 .NET DateTimeFormatInfo 转换为 Javascript jQuery formatDate?

    我有一个 jQuery UI 日期选择器 我打算将其与 ASP NET MVC 中的文本框一起使用 文本框中的日期显示是通过 CultureInfo 本地化的 当然应该被 jquery 识别以在日期选择器中选择正确的日期 我现在想做的是用类
  • PowerShell SendKeys 到 InternetExplorer ComObject

    下面是我发现的一种方法 它将 IE ComObject 窗口带到前台并使用 SendKeys 如何使用此方法发送一系列按键 ie New Object ComObject InternetExplorer Application ie na
  • 我如何获得限制供应商(运输)的最佳报价组合,以及如何使用 python 或机器学习获得最佳价格

    用户在存储桶中选择 1 到 N 个产品 对于每种产品 供应商有 N 个报价 我想让用户有机会告诉他 我想要的输出是 如果您从供应商 A 处购买 您 5 件产品的总成本为 87 美元 如果您从供应商 A 和 B 处购买 您 5 件产品的总成本
  • 将元数据/自定义数据附加到通过 API 发送的 Slack 消息

    我正在为我的工作区开发一系列 Slack 应用程序 其中一些应用程序旨在与其他应用程序传递的内容 消息 进行交互 提取其他消息可能引用的内容 ID 一个具体的例子 假设我有一个应用程序 A FindUser 当 slack 用户键入时 它能
  • 链接到页面时,按钮文本(基于 JSON 调用)未加载

    我对 jQuery javascript 非常陌生 并且根据此介绍编写了一些代码JSON 和 PHP http www itnewb com tutorial Introduction to JSON and PHP最终在我的页面上看起来像
  • findViewById() 对于对话框中的视图返回 null

    问题是 无论我在哪里或如何调用此布局的组件 它们总是返回 null setView inflater inflate R layout search layout null 这很好用 它显示内部的布局Dialog 但是 子项始终返回为 nu
  • 天/小时/分钟/秒的快速倒计时器标签

    我正在创建一个倒计时器 倒计时到NSDate设置在一个UIDatePicker 我有一个标签 显示我们正在倒计时的日期 效果很好 我还想添加的是当天剩余天数和当天剩余小时 分钟 秒数的标签 即永远不会超过 23 59 59 这是我目前所做的
  • Firefox 无法解压 gzip 文件

    我有 gz 文件存储在 AWS s3 上 使用 s3 REST API 我生成指向各个文件的经过身份验证的链接 我还设置了内容标头选项 以便请求这些 URL 的浏览器将解压缩并下载 gzip 压缩的文件作为附件 生成的 s3 url 如下所
  • 使用 Matplotlib 在半对数刻度上拟合直线

    我一直在努力在用 Matplotlib 和 Python 3 制作的半对数图上拟合直线 我见过很多双对数比例尺数字的例子 但我尝试过的解决方案都不起作用 使用numpy 线最终总会在某个地方弯曲 以下是我迄今为止所掌握的 import os
  • Git 将功能分支中的单个文件重置为与 master/main 中的相同[重复]

    这个问题在这里已经有答案了 我正在尝试恢复我的更改单个文件在我的功能分支中 我希望该文件与 master main 中的文件相同 I tried git checkout filename git checkout filename git
  • Postman在新版本中删除了离线模式(Scratch Pad),有办法启用吗?

    Postman 删除了离线模式 Scratch Pad https learning postman com docs getting started basics using scratch pad https learning post
  • 使用 ALAsset 来自 GRKPhoto 的 UIImage

    我在用着grabKit https github com pierrotsmnrd grabKit为了允许用户将他们的 Instagram Facebook 和本地图片导入到我的应用程序中 当照片是本地时就会出现问题 在本例中 我使用了一种
  • elasticsearch 使用查询字符串设置排序顺序

    我有以下简单的弹性搜索查询 http localhost 9200 apn presupuesto search q subcuenta penal sort anio 而且效果很好 现在我尝试通过 anio desc 订购 我尝试了所有这
  • 为什么Java 8的Optional不能在参数中使用

    我在许多网站上读过 Optional 应该仅用作返回类型 而不应在方法参数中使用 我正在努力寻找一个合乎逻辑的理由 例如 我有一段逻辑 它有 2 个可选参数 因此 我认为像这样编写我的方法签名是有意义的 解决方案 1 public int
  • 在 Haskell 中实现类型类时的任意类约束

    我正在尝试实现一个简单的Set在 Haskell 中 我陷入了如何表达它包含的元素的类约束的困境 The Set类型类相当简单 class Set s where empty s a isEmpty s a gt Bool insert s
  • ggplot图例不显示

    以下代码不显示图例 library ggplot2 g ggplot g g geom line aes x 1 10 y 1 10 color red size 0 2 g g geom line aes x 5 12 y 15 22 c
  • R中的sqldf包,查询数据框

    我正在尝试使用 R 中的 sqldf 库重写一些代码 这应该允许我在数据帧上运行 SQL 查询 但我遇到一个问题 每当我尝试运行查询时 R 似乎都会尝试查询我使用的实际 MySQL 数据库 con 并通过我试图搜索的数据框的名称查找表 当我
  • System.Threading.ThreadAbortException:线程被中止

    我在执行该过程时收到此错误 此问题仅出现在生产中 而不出现在测试和开发系统中 而且这个问题也不会一直发生 当出现此错误时 通过应用程序使用此数据库的所有用户都会被挂起 这意味着与数据库的所有用户连接都将被重置 几秒钟后它会恢复并正常工作 错