- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很感激任何建议,无论多么简单或复杂,以帮助我隔离和解决这个问题。
我有一些生成小报告文件的代码。对于集合中的每个文件,都会执行一个存储过程以通过 XML 阅读器(它是一个非常大的结果集)获取数据。当我创造了这一切并逐步完成时,一切都很好。生成文件,没有错误。
该库通过远程调用,并通过 IIS 托管。当我部署编译的库并调用它时,它能够生成一些报告,但随后抛出一个线程中止异常。如果我将调试器附加到 asp 工作进程,并逐步执行代码,我就没有问题。
看到此失败非常一致,我寻找相似之处并发现失败发生在不同的报告中,但似乎发生在大致相同的时间点。
这让我认为这是调试器覆盖的超时设置,我对整个过程(不是单个失败的代码)做了一些粗略的计时,它似乎在大约 200 秒后失败。 web.config executionTimeout 设置为 600 分钟(足够高)。此服务器应用程序还有其他部分需要 COM+ 事务(2 分钟超时),但这不是其中之一。我不知道它可能会达到什么超时(大约 200 秒)。
SQL 连接超时保持默认(连接打开成功),命令超时为 300 秒(执行命令只需要 12-15 秒)。
Private Function GetDataAsXmlDoc(ByVal cmd As SqlClient.SqlCommand) As XmlDocument
Dim _xmlDoc As XmlDocument
Using _connection As New SqlClient.SqlConnection(GetConnectionString())
Logging.DebugEvent.Raise(Me.GetType.Namespace, Reflection.MethodBase.GetCurrentMethod().Name, _
"No cached data found or used. Getting data for report from the database using SQL connection.")
Dim _xmlReader As XmlReader
'DataAdapter,ExecuteScalar, ExecuteXmlReader all use ExecuteReader internally and suffer the same problem.'
'If you dont believe me, reflect it or look at one of the blowed up stack traces. '
'_connection.ConnectionString += ";Pooling=false;"' 'This has no effect on the ThreadAbort.'
cmd.Connection = _connection
cmd.CommandTimeout = 300
_connection.Open()
Logging.DebugEvent.Log(String.Format("Connection opened, using packet size of {0}.", _connection.PacketSize))
_xmlReader = cmd.ExecuteXmlReader() 'Thread aborts in here'
Logging.DebugEvent.Raise(Me.GetType.Namespace, Reflection.MethodBase.GetCurrentMethod().Name, _
"Report data recieved from database")
_xmlDoc = New XmlDocument()
_xmlDoc.Load(_xmlReader)
_xmlReader.Close()
End Using
Return _xmlDoc
End Function
Exception String - System.Threading.ThreadAbortException: Thread was being aborted.
at SNINativeMethodWrapper.SNIPacketGetConnection(IntPtr packet)
at System.Data.SqlClient.TdsParserStateObject.ProcessSniPacket(IntPtr packet, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteXmlReader()...
最佳答案
我相信我已经解决了这个问题。上面示例中的违规代码行是语句...
Logging.DebugEvent.Raise(Me.GetType.Namespace, Reflection.MethodBase.GetCurrentMethod().Name, _
"Report data recieved from database")
_xmlReader.Close()
之后它解决了这个问题。
关于vb.net - SqlClient 调用导致 "Thread was being aborted at SNINativeMethodWrapper.SNIPacketGetConnection(IntPtr packet)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/424531/
我不断收到标题中提到的错误,但我似乎无法通过这个错误。 这是我的代码: strSig = sigPlusNET1.GetKeyReceiptAscii() sigPlusNET
在 .Net Core 2.0 中使用 System.Data.SqlClient.dll 时出现版本冲突错误。它看起来像是 Core dll 和 NetStandard dll 之间的冲突。不知道为
在我的代码中使用 Microsoft.Data.SqlClient 程序包(2.0 版)时,通过 VSTest.console.exe 执行单元测试时出现以下错误我们的 CI 供应商(在本地运行时):
错误的屏幕截图我收到指向ItemsService中下面的‘GetAllItems()’方法的SQLException。“无效的列名OrderID1”。我有两个实体,Order和Item,我希望与每个I
错误的屏幕截图我收到指向ItemsService中下面的‘GetAllItems()’方法的SQLException。“无效的列名OrderID1”。我有两个实体,Order和Item,我希望与每个I
Screenshot of errorI am getting an SQLException pointing at the 'GetAllItems()' method below in t
我最近将我的一个 ASP.NET Core 应用程序从 net461 应用程序升级到 ASP.NET Core 2.0 应用程序,因为过去唯一阻碍我的是 System.Transactions(现在受
我对我的 ASP.NET Core 2.0 项目中的所有 .NET Standard 2.0 类库使用 System.Data.SqlClient 版本 4.4.3。为什么我得到 Could not
运行查询时出现以下错误。 * System.Data.SqlClient.SqlException: 超时已过。 在操作完成之前超时期限已过,或者服务器没有响应。在 System.Data.SqlCl
我正在编写一些 python 来与我有权访问的 MSSQL 服务器进行交互。我目前遇到的问题是我的交易语句之一没有超过默认设置的超时期限(30 秒)。 我已尝试将连接字符串中的命令超时更改为值 0,这
在更改服务器并尝试为某些数据库密集型任务增加工作线程数后,我注意到我的应用程序出现性能问题。 经过一些测试,我发现问题出在从 dataReader 读取数据。在 30 个线程上执行简单查询比在单线程上
我有以下代码: open FSharp.Data [] let connectionString = @"Data Source=(local)\SQLExpress;Integrated Secur
我在 ubuntu 中使用单声道,我需要一个 Web 服务来访问 SQL 数据库,但是当我使用 Mono 时: using System.Data.SqlClient; 选项 SqlClient 不存
我已经处理这个问题一段时间了。我有一个简单的 PowerShell 函数,它接受一个到 SQL Server 的开放连接和一个包含 SQL 命令的字符串,并针对服务器运行它。该函数应返回一个整数值,表
假设我有一个将一些数据插入表中的存储过程。如果数据重复,则会导致 sql server 错误(因为我在某些列上有唯一索引)并且此错误会导致 SqlClient 中出现异常。我可以在存储过程中做什么来处
我主要是想找出使用 SqlClient 命名空间在 C#.NET 中执行基本插入操作的最简单方法。 我正在为我的数据库链接使用 SqlConnection,我已经成功执行了一些读取操作,我想知道插
我正在尝试使用 Microsoft.Data.SqlClient,但无法使连接正常工作。但是,当我使用 System.Data.SqlClient 时,一切正常。 try { using (v
我有一个名为 Site.Dal 的项目,它使用 netstandard2.0 进行编译。 csproj 是: netcoreapp2.2;netcoreapp3.1;netstanda
如何在 Azure 上启用和查看 SqlClient 跟踪?我有一个托管在 Azure 上的 Web 应用程序,它使用 SqlClient。我知道我们可以使用 XPerf/PerfView 来收集和查
我们有一个 WCF 服务托管在 IIS 中,在服务器上运行。该服务连接到另一台服务器上运行的 SQL Server 实例。在我们的代码中,我们为每个请求打开和关闭连接。 WCF 服务每分钟向数据库发出
我是一名优秀的程序员,十分优秀!