Это ошибка вызвана попыткой обработать слишком много элементов управления в веб-форме?

Я получаю эту страницу с ошибкой:

Server Error in '/EMS/customerreportingnet' Application.

Operation is not valid due to the current state of the object. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Operation is not valid due to the current state of the object.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 

[InvalidOperationException: Operation is not valid due to the current state of the object.]
   System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +4198079
   System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +60
   System.Web.HttpRequest.FillInFormCollection() +189
[HttpException (0x80004005): The URL-encoded form data is not valid.]
   System.Web.HttpRequest.FillInFormCollection() +11196408
   System.Web.HttpRequest.get_Form() +119
   System.Web.TraceContext.InitRequest() +1188
   System.Web.TraceContext.VerifyStart() +133   System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +11307449
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +452

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.5485; ASP.NET Version:2.0.50727.5491

... когда я нажимаю кнопку, которая запускает этот код:

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim upd8DML As String = "UPDATE CustomerCategoryLog SET Category = 'Exploding' WHERE Unit = @Unit And MemberNo = @MemberNo AND Custno = @CustNo"

    Dim coName As String
    Dim argVals(2) As String
    Dim _Unit As String
    Dim _MemberNo As String
    Dim _CustNo As String
    Dim curIndexVal As String

    For Each cntrl As Control In Me.Controls
        If TypeOf cntrl Is CheckBox Then
            If DirectCast(cntrl, CheckBox).Checked = True Then
                curIndexVal = DirectCast(cntrl, CheckBox).ID
                coName = GetLabelTextForID(curIndexVal)
                argVals = GetArgValsForCompanyName(coName)
                _Unit = argVals(0)
                _MemberNo = argVals(1)
                _CustNo = argVals(2)
                Using conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString")), _
                    cmd As New SqlCommand(upd8DML, conn)
                    cmd.Parameters.Add("@Unit", SqlDbType.VarChar, 50).Value = _Unit
                    cmd.Parameters.Add("@MemberNo", SqlDbType.VarChar, 50).Value = _MemberNo
                    cmd.Parameters.Add("@CustNo", SqlDbType.VarChar, 50).Value = _CustNo
                    conn.Open
                    cmd.ExecuteScalar()
                End Using
            End If
        End If
    Next

End Sub

Я предполагаю, что это потому, что буквально тысячи пар меток / флажков элементов управления в форме слишком много для обработки (не каламбур). Если этот расчет верен, то каков предел элементов управления, которые будет размещать на странице, не беря на себя?

Есть ли обходной путь, когда я могу иметь дело с тысячами пар метка / флажок?

Или это количество операторов обновления, которые вызывают проблему?

Сообщение об ошибке, кажется, указывает на слишком много элементов управления, чтобы иметь дело с...

0 ответов

Другие вопросы по тегам