Pour ceux qui utilisent les Update Panels et qui ont un problème avec le timout (PageRequestManagerTimeoutException) voici une solution qui peut les aider.

Il y a peu j'ai migré un site web fonctionnant parfaitement sous Windows 2003 vers un Windows 2008. Les utilisateurs m'ont signalé que de temps en temps un timeout se produit.

Tout d'abord j'ai essayé d'augmenter la valeur de la propriété AsyncPostBackTimeOut="3600"  (la valeur par défaut étant 90s) mais cela n'avait pas changé grand chose. Le popup AJAX de timout s'affichait toujours.

Heureusement qu'il est possible de définir un handler sur le timout. Il faut utiliser l'évènement EndRequest de PageRequestManager. Le premier paramètre fait référence à PageRequestManager lui même et le second paramètre c'est une instance de la classe EndRequestEventArgs. Quand une erreur se produit utilisez la fonction get_error() pour vérifier ce qui s'est passé. Voici un exemple:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page sans titre</title>
<link href="immo.css" rel="stylesheet" type="text/css" />
</head>
<body style="margin:0px">
<form id="form1" runat="server">
</asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeOut="3600">
</form>
</body>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
   if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') {
   // définissez errorHandled = true afin de ne pas afficher la fenêtre de popup AJAX 
   args.set_errorHandled(true);
   }
});
</script>
</html>

C'est tout. En tout cas ça règle mon problème.