Como reciclar programaticamente o próprio pool de aplicativos de um aplicativo da web .net?

Eu tenho um aplicativo de servidor complexo que usa Nhibernate e Linq2SQL. Cerca de 3 vezes por dia, o código Linq2sql gera uma exceção "o valor não pode ser nulo". Quando isso acontece, o código sempre gera a exceção. O diagnóstico e a solução da causa raiz serão demorados e introduzirão instabilidad

A "correção" atual é alterar o estilo do pool de aplicativos a cada hora. No entanto, o serviço está inoperante desde o ponto em que o problema ocorre até a reciclagem. Eu quero que o serviço da Web capture a exceção e recicle seu próprio pool de aplicativos. Quero que todas as outras solicitações da Web sejam atendidas até que sejam concluídas.

Editar A falha está nos dois servidores em um web farm com balanceamento de carga. Os clientes não alternam de um servidor para outro apenas porque esse código falh

questionAnswers(10)

yourAnswerToTheQuestion