У меня была страница aspx, которая работала хорошо, но внезапно я получаю сообщение об ошибке «Операция недопустима из-за текущего состояния объекта». всякий раз, когда выполняется обратная передача.
Трассировка стека:
в System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded ()
в System.Web.HttpValueCollection.FillFromEncodedBytes (байты [], кодировка)
в System.Web.HttpRequest.FillInFormCol (
Может кто-нибудь помочь?
Ответы:
Кто-то разместил довольно много полей формы на вашей странице. Новое максимальное значение по умолчанию, введенное последним обновлением безопасности, составляет 1000.
Попробуйте добавить следующий параметр в
<appsettings>
блок вашего web.config . в этом блоке вы максимизируете значения MaxHttpCollection, это переопределит значения по умолчанию, установленные .net Framework. вы можете изменить значение в соответствии с вашими требованиямиДля получения дополнительной информации, пожалуйста, прочитайте этот пост. Для получения более подробной информации о патче безопасности от Microsoft вы можете прочитать эту статью базы знаний
источник
Я не применил подкачку к своему сеточному виду, и он распространяется на более чем 600 записей (с флажками, кнопками и т. Д.), А значение 2001 года не сработало. Вы можете увеличить значение, скажем, 10000 и проверить.
источник
В ASP.NET 1.1 это по-прежнему связано с тем, что кто-то публикует более 1000 полей формы, но этот параметр необходимо изменить в реестре, а не в файле конфигурации. Он должен быть добавлен как DWORD с именем MaxHttpCollectionKeys в реестр под
для 32-разрядных версий Windows и
для 64-разрядных версий Windows.
источник
Если ваша трассировка стека выглядит следующим образом, то вы отправляете огромную нагрузку json-объектов на сервер
Для разрешения обновите веб-конфигурацию следующим ключом. Если вы не можете получить трассировку стека, используйте fiddler . Если это не помогло, попробуйте увеличить число до 10000 или что-то в этом роде.
Для более подробной информации, пожалуйста, прочитайте эту статью Microsoft kb
источник