ArvindTomar Ответов: 1

Ошибка: необработанное исключение типа "system.stackoverflowexception" произошло в mscorlib.dll использование с переключателем


мы используем switch в моем коде onrowdatabound но он отлично работает из исходного кода но когда я использую с IIS то он показывает ниже ошибку
"
Error: An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
"

Я стараюсь увеличить размер w3wp.exe но система не позволяет инкрезе
это шоу
c:\windows\system32\inetsrv\’ is denied


Что я уже пробовал:

try
            {

                LinkButton lbSelect = (LinkButton)e.Row.FindControl("lbtnUOM");
                string stri = Request["ShowDetails"];

                switch (stri)
                {

                    //PRODUCTION PLANNING
                    case "PRNumber": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "ProductionPPCNo": lbSelect.Attributes.Add("onclick", "return HelpVendorCode('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "','" + e.Row.Cells[1].Text.ToString() + "', '" + hdnID2.Value + "')");
                        break;
                    case "ProductionCustomer": lbSelect.Attributes.Add("onclick", "return HelpVendorCode('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "','" + e.Row.Cells[1].Text.ToString() + "', '" + hdnID2.Value + "')");
                        break;
                    case "ProductionFromSo": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "ProductionToSo": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "STATranNo": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;

                    case "STAUserId": lbSelect.Attributes.Add("onclick", "return HelpRemarkGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "','" + e.Row.Cells[1].Text.ToString().Trim() + "','" + hdnID2.Value + "')");
                        break;

                    case "SPNo": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "GroupCodeList": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "SPItemCodeList": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "SPCustomerCode": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "CustomerGroup": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "ItemDiscount": lbSelect.Attributes.Add("onclick", "return HelpWhGrid('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "CustomerCodeReciept": lbSelect.Attributes.Add("onclick", "return HelpCostCenterWindow('" + lbSelect.Text.Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "RECIEPT_PROCESS": lbSelect.Attributes.Add("onclick", "return HelpWindowStockTransfer('" + lbSelect.Text.Trim().ToString().Trim() + "','" + hdnID2.Value + "')");
                        break;
                    case "NITDocCustomer": lbSelect.Attributes.Add("onclick", "return HelpTo_FromItem('" + lbSelect.Text.Trim().ToString().Trim() + "','" + hdnID.Value + "','" + e.Row.Cells[1].Text.ToString().Trim() + "','" + hdnID2.Value + "')");
                        break;
                    case "TR_FROM_RETURN_INVOICE_NO": lbSelect.Attributes.Add("onclick", "return HelpVendorCode('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;
                    case "TR_TO_RETURN_INVOICE_NO": lbSelect.Attributes.Add("onclick", "return HelpVendorCode('" + lbSelect.Text.ToString().Trim() + "','" + hdnID.Value + "')");
                        break;

default:
                       throw new Exception(String.Format("Unknown state: {0}", stri));
                       break;
               }
           }
           catch (Exception ex)
           {
               this.RegisterStartupScript("AlertMsg", genUOM.strScr1 + ex.Message.Replace("'", "") + genUOM.strScr2);
           }

F-ES Sitecore

На какой линии происходит ошибка? Переполнение стека означает, что ваш код выполняет бесконечный цикл.

1 Ответов

Рейтинг:
0

OriginalGriff

Переполнение стека означает, что происходит что-то очень неправильное: ваш код прямо или косвенно рекурсирует и использует весь стек. Как и где мы не можем сказать из тривиального фрагмента кода.

Поэтому используйте отладчик: поставьте точку останова на линиях

LinkButton lbSelect = (LinkButton)e.Row.FindControl("lbtnUOM");
и
this.RegisterStartupScript("AlertMsg", genUOM.strScr1 + ex.Message.Replace("'", "") + genUOM.strScr2);
и посмотрите на детали исключения (особенно трассировку стека), когда происходит переполнение. Он должен дать вам метод и номер строки, вызывающие рекурсию.


ArvindTomar

я проверил но отладчик не идет к конкретному случаю он показывает
Ошибка на коммутаторе "необработанное исключение типа 'system.stackoverflowexception' произошло в mscorlib.dll"

OriginalGriff

И что показывает вам трассировка стека?

ArvindTomar

Я использую переключатель заявление и около 700-800 случаев в выключатель
как я могу отследить ошибку в случае ведьмы, Если у вас есть проблема, система показывает ошибку на коммутаторе. он отлично работает с исходным кодом, но не работает, когда я размещаю сайт на IIS

OriginalGriff

Добавьте блок try...catch вокруг коммутатора и запишите входное значение, трассировку стека и так далее. Если вы не можете использовать отладчик, то вам придется вернуться к более традиционным средствам отладки - журналированию и проверке после сбоя. Вы используете начальные результаты try...catch для уточнения ведения журнала до тех пор, пока не сузите проблему до определенного кода и / или входных значений.

Извините, но мы не можем сделать это для вас!