Чрезвычайно сложная проблема с приложением ASP.Net 4.0 WebForms, использующим маршрутизацию - PullRequest
1 голос
/ 27 мая 2010

У меня есть готовое приложение, работающее в среде QA. Все работает нормально в большинстве случаев. Если вы нажмете простой URL (без идентифицирующей информации в URL), вы увидите вводную страницу с кнопкой (сгенерированной элементом управления asp LinkButton), которая отправляет сообщения назад и направляет вас на другую страницу. Разметка выглядит одинаково, когда она выходит из строя, а когда нет.

Когда за таким URL-адресом, например, Word, и браузером по умолчанию является IE, начальная страница загружается нормально, но нажатие кнопки вызывает ошибку. Когда это не отладка, это происходит каждый раз. Во время отладки ошибка возникает только ~ 1 из 10 раз (закрытие экземпляра браузера и запуск каждый раз заново).

При возникновении ошибки запускается начальная страница Page_Load, и IsPostBack имеет значение false. Каким-то образом вместо поста выдается выкуп.

Когда я запускаю fiddler, чтобы попытаться проанализировать реальные вызовы (не могу использовать firebug, потому что это никогда не происходит с использованием Firefox), все работает каждый раз.

Я не знаю, связана ли эта проблема с маршрутизацией, и я даже не знаю, что посмотреть дальше. Странно то, что при отладке начальная страница загружается не каждый раз. Только примерно 1 из 3 он полностью загружается, даже если я только что очистил кеш браузера. Когда я запускаю его через fiddler, он полностью загружается и работает нормально каждый раз.

1 Ответ

0 голосов
/ 28 мая 2010

Это было связано с сеансами без печенья. Изменение
<sessionState cookieless="AutoDetect" mode="InProc" timeout="20" />
до
<sessionState cookieless="UseUri" mode="InProc" timeout="20" />
решил проблему.

Казалось, что AutoDetect вызывает случайные дополнительные запросы. Я не думаю, что есть какой-то способ, которым он мог бы хорошо играть с маршрутизацией

...