2009-12-10 4 views
0

L'erreur suivante se produit lorsque ma page Web est inactive pendant plus de 5 min.Erreur Viewstate dans la page Web

Erreur: Sys.WebForms.PageRequestManagerServerErrorException: Échec de la validation du MAC viewstate. Si cette application est hébergée par une batterie ou un cluster Web, assurez-vous que la configuration spécifie le même algorithme de validation et de validation. AutoGenerate ne peut pas être utilisé dans un cluster. Fichier source: http://www.dial4jobz.com/ScriptResource.axd?d=Xl5p0QQ_qaR3K9bIVhwC3LyqjOX_oAKyeLj_-uS5j1VoFExVtm3XAHiq64EGJt04xntLJvh-9y3pvN3dvKgg5b6sQwkFvX7GT4f0aKn7iyc1&t=73e6f815

Dono, wat est la cause de cette erreur .. Je vais ouvrir une page Web et après 5 min quand j'y accède, il montre ce genre d'erreur .. Je ne ' T hav toute idée que cette erreur se produit .. Plz, donnez-moi une idée ???

Répondre

1

J'ai eu le même problème, ce sont les deux solutions que j'ai trouvé et qui pourraient vous aider si vous n'utilisez pas Webfarm:

1. Désactivez ViewState MAC

Sur votre page (.aspx) @ Page directive, vous pouvez ajouter l'attribut EnableViewStateMac="false". En faisant cela, cela désactivera la vérification et le problème disparaîtra.

Malheureusement Microsoft ne recommande pas le faire pour des raisons de sécurité:

This attribute should never be set to false in a production Web site, even if the application or page does not use view state. The view state MAC helps ensure the security of other ASP.NET functions in addition to view state.

Source: Microsoft

2. Vérifiez HTML

Il y a un bogue dans ASP.Net cause ce problème lorsque l'attribut "action" est défini dans votre balise <form>. Par exemple:

<form runat="server" action="page.aspx"> 

En supprimant cet attribut qui supprimera la question, de sorte que vous devriez avoir quelque chose comme:

<form runat="server"> 

Il est évident que cette solution peut soulever d'autres questions, cela dépend de votre application. Un gros problème est lors de l'utilisation d'Ajax pour charger des pages.

3. Évitez viewstates

Dans certains cas, lors de l'utilisation d'Ajax, il pourrait être très facile de se débarrasser de viewstates. Vous pouvez envoyer des requêtes Ajax à votre serveur pour effectuer des opérations, puis afficher le résultat, pas besoin d'utiliser ViewState. En faisant cela, vous n'aurez pas de problème avec la validation de ViewState.

J'ai également trouvé d'autres suggestions sur those pages qui pourraient vous aider si ce qui a été dit ci-dessus ne résout pas votre problème.

Questions connexes