1

我们正在使用新的遗物来监控我们的应用程序,并且我们经常收到此错误,我很难追踪它:

System.Data.SqlClient.SqlException:违反主键约束“PK_ ASPStateTempSess _267ABA7A”。无法在对象“dbo.ASPStateTempSessions”中插入重复键。该语句已终止。

如果我们能找到根本原因,这似乎是一个简单的修复,只需在插入之前检查主键不存在,但这似乎是默认功能,我不知道我们是否有能力修改。没有提到具体的代码行,所以我真的不知道从哪里开始。我在这里和谷歌上做了很多搜索,但找不到这个确切的问题。该应用程序在 2 个负载平衡服务器上运行,并且我检查了 web.configs 是否相同,具有一个通用的 aspstate 数据库。如果有帮助,这是堆栈跟踪:

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean\ breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,\ Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject\ stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand\ cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,\ TdsParserStateObject stateObj)
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.InternalExecuteNonQuery(DbAsyncResult\ result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Web.SessionState.SqlSessionStateStore.CreateUninitializedItem(HttpContext\ context, String id, Int32 timeout)

有没有人有这样的经验,或者可以指出我其他事情的另一个方向?

4

0 回答 0