Nous avons une application web asp.net 2.0 qui fonctionne sur IIS7. Il utilise des jardins web et le serveur d'état asp.net.Asp.net 2.0 La méthode des clics sur les boutons fonctionne de manière incohérente dans un jardin web
Sur la page, il existe de nombreuses commandes utilisateur. Sur l'un des contrôles utilisateur, nous avons ajouté la journalisation sur l'événement button_click qui écrit une ligne dans le journal à chaque fois que cette méthode s'exécute. Lorsque nous cliquons sur le bouton, il affiche seulement périodiquement l'entrée du journal - indiquant que l'événement ne se déclenche pas toujours lorsque le bouton est cliqué. Nous avons ajouté la journalisation car nous soupçonnions que la méthode de clic sur les boutons ne fonctionnait pas toujours lorsque nous cliquions sur le bouton. Les preuves que nous voyons semblent confirmer nos soupçons. Lorsque nous supprimons le jardin Web et que nous remettons le site dans un pool d'applications unique, l'application revient à la normale: l'événement du bouton se déclenche à chaque fois. Lorsque nous exécutons l'application sur des machines de développement locales, cela fonctionne également normalement.
Est-ce que quelqu'un d'autre a vu un comportement comme celui-ci? Existe-t-il des recommandations sur les prochaines mesures que nous pourrions prendre pour affiner le problème?
EDIT: voici la source de l'événement comme demandé:
protected void btnSearch_Click(object sender, EventArgs e)
{
Log.Error("Searching...");
SearchArgs args = CtrlToSearchArgs();
SessionManager.SearchQueryString = Request.QueryString;
string url = NavigationManager.BuildSearchUrl(args, null, "*** page url removed here ***");
if (args.PageSize.HasValue)
{
SessionManager.SetInSession(SessionManager.Key.SEARCH_PAGESIZE, args.PageSize.Value.ToString());
}
else
{
SessionManager.SetInSession(SessionManager.Key.SEARCH_PAGESIZE, "10");
}
SessionManager.SearchPanelData = url;
//Set the new args into the session
SessionManager.SearchControlArgs = args;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Redirect(url);
}
EDIT # 2: Précisions - cette configuration est de ne pas utiliser plusieurs serveurs et n'est pas sous un équilibreur de charge. Nous utilisons plusieurs AppPools sur un seul serveur.
Post le code de bouton_click ... – cjk