我正在使用以下代码生成有序列表。在负载测试期间刷新此页面时,此代码会在第 73、106、108 行创建异常。菜单在开发和测试环境中创建。它在生产端或负载测试期间崩溃**
try
{
dtDepartments = DB.GetDataSet("[dbo].[Departments]", AppLogic.CachingOn).Tables[0];
dtCategories = DB.GetDataSet("[dbo].[Categories]", AppLogic.CachingOn).Tables[0];
foreach (DataRow drDept in dtDepartments.Rows)
{
dtCategories.DefaultView.RowFilter = "[SEName] Like '" + drDept["SEName"].ToString() + "-%' And [ParentCategoryId] = 0";
CategoryView = null;
CategoryView = dtCategories.DefaultView;
foreach (DataRowView CategoryRowView in CategoryView)
{
DataRow CategoryRow = CategoryRowView.Row; \\line number 73
dtCategories.DefaultView.RowFilter = "[SEName] Like '" + drDept["SEName"].ToString() + "-%' And [ParentCategoryId] = " + CategoryRow["CategoryID"].ToString();
CategoryViewTwoCount = dtCategories.DefaultView.Count;
CategoryViewTwo = null;
if (CategoryViewTwoCount > 0)
{
CategoryViewTwo = dtCategories.DefaultView;
}
else
{
}
if (CategoryViewTwoCount > 0)
{
foreach (DataRowView CategoryRowViewTwo in CategoryViewTwo) \\line number 106
{
DataRow CategoryRowTwo = CategoryRowViewTwo.Row; \\line number 108
}
}
}
}
TreeMenu = HTMLContents.ToString();
if (CategoryViewTwo != null)
{
CategoryViewTwo = null;
}
if (CategoryView != null)
{
CategoryView = null;
}
HTMLContents = null;
dtCategories.Dispose();
dtDepartments.Dispose();
dtCategories = null;
dtDepartments = null;
}
catch (Exception ex)
{
//Log for staging
//AppLogic.WriteAppLogs(string.Format("Exception:\n{0}\nMessage:\n{1}Inner Exception:\n{2}\nStack Trace:{3}", ex.ToString(), ex.Message.ToString(), ex.InnerException.ToString(), ex.StackTrace.ToString()));
AppLogic.WriteAppLogs("Source " + ex.Source + ex.Message + ex.StackTrace);
//Log for production
//DB.ExecuteSQL(String.Format("INSERT INTO ErrorLog (source, errormsg) VALUES ({0}, {1})", DB.SQuote(CommonLogic.GetThisPageName(true)), DB.SQuote(ex.ToString())));
}
return TreeMenu;
这是异常日志
源 App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 对象引用未设置为对象的实例。在 treeviewNew.aspx.cs:line 108 中的 treeview.DisplayTreeMenu() 2013 年 6 月 14 日下午 5:25:19
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:26:03
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:26:38
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:26:52
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:27:04
源 App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 对象引用未设置为对象的实例。在 treeviewNew.aspx.cs:line 108 中的 treeview.DisplayTreeMenu() 2013 年 6 月 14 日下午 5:28:01
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:29:45
源 App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 对象引用未设置为对象的实例。在 treeviewNew.aspx.cs:line 108 中的 treeview.DisplayTreeMenu() 2013 年 6 月 14 日下午 5:31:09
源 App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 对象引用未设置为对象的实例。在 treeviewNew.aspx.cs:line 73 2013 年 6 月 14 日下午 5:32:14 中的 treeview.DisplayTreeMenu()
源 mscorlib 字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Data.DataView.CopyTo(DataRowView[] array, Int32 index) at System.Data.DataView.GetEnumerator() at treeview.DisplayTreeMenu() in treeviewNew.aspx.cs:第 106 行 2013 年 6 月 14 日下午 5:32:27