-1

次のコードを使用して順序付きリストを生成しています。このコードは、負荷テスト中にこのページが更新されると、行番号 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 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:26:03 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:26:38 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:26:52 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:27:04 PM

ソース App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 オブジェクト参照がオブジェクトのインスタンスに設定されていません。treeviewNew.aspx.cs:line 108 の treeview.DisplayTreeMenu() で 2013 年 6 月 14 日 5:28:01 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:29:45 PM

ソース App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 オブジェクト参照がオブジェクトのインスタンスに設定されていません。treeviewNew.aspx.cs:line 108 の treeview.DisplayTreeMenu() で 2013 年 6 月 14 日 5:31:09 PM

ソース App_Web_treeviewnew.aspx.cdcab7d2.de1ldkd2 オブジェクト参照がオブジェクトのインスタンスに設定されていません。treeviewNew.aspx.cs:line 73 の treeview.DisplayTreeMenu() で 2013 年 6 月 14 日 5:32:14 PM

ソース mscorlib 指定されたキーはディクショナリに存在しませんでした。System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で System.Data.DataView.CopyTo(DataRowView[] 配列、Int32 インデックス) で System.Data.DataView.GetEnumerator() で treeview.DisplayTreeMenu() でtreeviewNew.aspx.cs: 106 行目 2013 年 6 月 14 日 5:32:27 PM

4

1 に答える 1