У меня самая странная проблема ... У меня монорельсовый веб-сайт (решение .NET, похожее на ASP.NET MVC) ... и на одной из страниц есть кнопка сохранения.При нажатии кнопки «Сохранить» выполняется некоторый код для сохранения объекта в базе данных, а затем перенаправляется на другую страницу.Однако, то, что он делает, это сразу после нажатия кнопки сохранения, он выполняет весь код сохранения, затем некоторое время остается там, а затем перенаправляет на другую страницу и выполняет свой код.Вот некоторые факты о ситуации, которые делают ее особенно странной.
- Каждый раз, когда вы проходите процесс нажатия кнопки «Сохранить» и ожидаете его завершения и перенаправления, это занимает на 2-4 секунды больше, чемв прошлый раз вы пытались.Итак, в первый раз это займет 2 секунды, затем, может быть, 5, затем 8 и т. Д. *
- Если вы перезапустите пул приложений, он снова будет работать быстро, но затем сработает факт №1Чем медленнее вы становитесь, тем медленнее.
- Я добавил в логирование, и он выполняет код сохранения и перенаправления за 1 миллисекунду, затем некоторое время ждет, а затем быстро выполняет код новой страницы.
- Я попытался изменить его для перенаправления на google.com, и он по-прежнему ведет себя таким образом.
- Я попытался вообще не перенаправлять его, просто снова обслуживать существующую страницу после сохранения, и она все еще ведет себятаким образом.
- Каждый раз, когда вы нажимаете кнопку сохранения, происходит выброс процессора (особенно процесс w3wp.)
- Другие страницы ведут себя не так, даже другие методы сохранения.
- Комментирование кода, сохраняемого в базе данных, заставляет его работать правильно, без ожидания.
Так есть ли у кого-нибудь идеи, что могло бы вызвать это?Код сохранения использует Active Record и NHibernate.Сам код работает очень быстро, как я уже говорил, он меньше 1 мс, но, похоже, что-то происходит асинхронно ПОСЛЕ того, как код завершает выполнение, что приводит к его зависанию в течение длительного времени.код: http://pastebin.com/XGLAWPgK.