У меня есть сложное серверное приложение, использующее Nhibernate и Linq2SQL. Примерно 3 раза в день код Linq2sql генерирует исключение «значение не может быть нулевым». Как только это произойдет, код всегда будет генерировать исключение. Диагностика и устранение первопричины займет много времени и приведет к нестабильности.
Текущее «исправление» - перезапускать пул приложений каждый час. Однако служба не работает с момента возникновения проблемы до повторного использования. Я хочу, чтобы веб-служба перехватила исключение и переработала собственный пул приложений. Я хочу, чтобы все остальные веб-запросы выполнялись до тех пор, пока они не будут выполнены.
Редактировать: Ошибка возникает на обоих серверах веб-фермы с балансировкой нагрузки. Клиенты не переключаются с одного сервера на другой только потому, что этот код дает сбой.