Удаление / игнорирование элементов сеанса, которые могут вызвать ошибки десериализации .NET - PullRequest
1 голос
/ 03 октября 2010

Я пытаюсь быть умным, позволяя небольшому методу проверки быть определенным «встроенным» в шаблонах ASCX как Action<,>, например:

<%= OnValidation(delegate(FormSubmission form, FormResult errors) {
    // form checks in here, append errors to errors variable if required
}) %>

На самом деле это работает, но для обеспечения возможности его вызова во время обратных передач мне нужно сохранить метод в сеансе для этого идентификатора формы. Это также работает до тех пор, пока приложение не нуждается в перестройке или изменении ссылок, тогда происходит сбой всего этого, потому что он не может найти «App_Webxxxx» для десериализации методов, оставленных в сеансе пользователя (я думаю, это не было бы, если бы я использовал сеансы InProc, так как очистка моих файлов cookie избавляет от ошибки, но она должна работать и в режиме SQLServer).

Для этого есть ли способ удалить эти типы элементов, прежде чем они вызовут проблемы или просто игнорировать их (я знаю, что это ленивый вариант)? Я не могу просто удалить их после запуска, так как пользователь не может отправить форму. Лучшее, что я могу подумать, - это проверить Application_Start, но я не уверен, что это вообще выполнится, и что проверить.

Любые подсказки очень ценятся!

...