事务(进程 ID XX)与另一个进程已被死锁在 thread | communication buffer 资源上【急求帮助】

Alan_Chao 2011-10-10 03:56:58
开发工具:VS2003+MSSQL2000

B/S局域网网站

错误:事务(进程 ID 54)与另一个进程已被死锁在 thread | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。

用了很多年的老项目维护,前段时间遇到过这个错误,当时把那个错误页面的源码拷贝到一个新的页面,更改了所有指向这个错误页面的链接后解决了。

这次又有2个页面出现这个错误。

尝试了上次的办法,刚更新就还报原来的错误。

关于问题的其它描述:
在客户那边的服务器上报错的页面在公司本地服务器不会报错(都是只有一个人去登录时测试的)

有遇到过或能解决这个问题的吗?急求帮助

Load事件:

private void Page_Load(object sender, System.EventArgs e)
{
unitID=Request["unitid"];
if(!IsPostBack)
{
//结构类型下拉框数据绑定
this.InitDropConstructType();

DataRow drRecord=GetRecordByUnitId(unitID);
if(drRecord!=null)
{

DataRow drUnit =baseFunction.GetRowNoDelTag("T_Unit","unitid",unitID);
labUnitName.Text =drUnit["UnitName"].ToString();

//市政基础设施著录单信息
DataRow drBase=baseFunction.GetRowNoDelTag("T_BaseEastablish","UnitID",unitID);
if(drBase==null)
{
baseFunction.SaveTableInfo("T_BaseEastablish","UnitID",unitID,new string[]{"UnitID"},new string[]{unitID});
}
drBase=baseFunction.GetRowNoDelTag("T_BaseEastablish","UnitID",unitID);
baseFunction.SetControlsValues(this.Form1.Controls,drBase);

//著录单信息
DataRow drUnitRecord=baseFunction.GetRowNoDelTag("T_UnitRecord","UnitID",unitID);

if(drUnitRecord!=null)
{
Remark.Text=drUnitRecord["Remark"].ToString();

foreach(ListItem item in rdblPatchFlag.Items)
{
if(item.Value==drUnitRecord["PatchFlag"].ToString().Trim())
{
item.Selected=true;
}
}

}

}
BindDangAnData();
}
myiframe.Attributes.Add("src","UnsubmitFileList.aspx?UnitID="+unitID);
btnCancle.Attributes["onclick"]="window.close();return false;";

}


错误提示详细信息

System.Exception: System.Data.SqlClient.SqlException: 事务(进程 ID 54)与另一个进程已被死锁在 thread | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。 at System.Data.SqlClient.SqlDataReader.Read() at System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping) at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at Winstar.EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames) at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames) at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String tableName) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(CommandType commandType, String commandText)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Exception: System.Exception: System.Data.SqlClient.SqlException: 事务(进程 ID 54)与另一个进程已被死锁在 thread | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。 at System.Data.SqlClient.SqlDataReader.Read() at System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping) at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at Winstar.EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames) at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames) at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String tableName) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command) at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(CommandType commandType, String commandText)

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[Exception: System.Exception: System.Data.SqlClient.SqlException: 事务(进程 ID 54)与另一个进程已被死锁在 thread | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。
at System.Data.SqlClient.SqlDataReader.Read()
at System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at Winstar.EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
at Winstar.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String tableName)
at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command)
at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(DBCommandWrapper command)
at Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(CommandType commandType, String commandText)]
Winstar.EnterpriseLibrary.Data.Database.ExecuteDataSet(CommandType commandType, String commandText) +133
Winstar.DataAccess.DBDataAccess.ExecuteDataSet(String defaultSql) +16
Winstar.CjdagYW.BusinessFacade.UnitRecordData.GetArchivesStatus(String UnitID)
Winstar.CjdagYW.WebUI.DesktopModules.ArchivesManage.BuildingRecordT.BindDangAnData()
Winstar.CjdagYW.WebUI.DesktopModules.ArchivesManage.BuildingRecordT.Page_Load(Object sender, EventArgs e)
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +750




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2407; ASP.NET 版本:1.1.4322.2470


另一个帖子发在 ASP.NET版块100分的
http://topic.csdn.net/u/20111010/14/ab4a384b-ffac-4246-993d-0abfcdd79daf.html
这个帖子分不多,已经是我所有的分了,请谅解,

不管能不能帮到我,首先谢谢看完我的问题

确实比较急,希望有高手能看到帮小弟这个忙

解决给全分
提供思路给一半分
不能解决均分结贴

...全文
199 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mabaolin 2011-10-10
  • 打赏
  • 举报
回复
Winstar.CjdagYW.WebUI.DesktopModules.ArchivesManage.BuildingRecordT.BindDangAnData()

BindDangAnData() 里的程序呢
Alan_Chao 2011-10-10
  • 打赏
  • 举报
回复
因为我公司服务器上是正常的,客户那边这个页面至少正常运行了5年左右

个人考虑会不会是服务器设置或者数据库问题?但是就是不能确定真正问题所在,求指导。

谢谢

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧