J'ai quelques panneaux de mise à jour et onglets jquery sur la page. Et aussi je charge quelques contrôles utilisateur sur les panneaux de mise à jour. Après que l'utilisateur attende quelques minutes (pas vérifié l'heure environ 40 minutes). lorsque l'utilisateur envoie une demande à partir du bouton d'envoi, il donne l'erreur ci-dessous?
'Sys.WebForms.PageRequestManagerServerErrorException:
Sys.WebForms.PageRequestManagerServerErrorException: An unknown
error occurred while processing the request on the server. The status
code returned from the server was: 0' when calling method:
[nsIDOMEventListener::handleEvent]
Je ne peux pas retracer ce problème à résoudre. Mais j'en suis sûre. Ceci est causé par Ajax. Gourous, si vous connaissez la solution. S'il vous plaît, faites-moi savoir.
Ce problème se produit parfois lorsque vous avez un contrôle enregistré en tant que AsyncPostbackTrigger
dans plusieurs panneaux de mise à jour.
Si ce n'est pas le problème, essayez d'ajouter ce qui suit juste après la déclaration du gestionnaire de script:
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args){
if (args.get_error() != undefined){
args.set_errorHandled(true);
}
}
</script>
Quelques solutions supplémentaires sont discutées ici: http://forums.asp.net/t/1066976.aspx/9/10
J'ai eu ce problème et j'ai passé des heures à essayer de le résoudre.
La solution cochée comme réponse ne résoudra pas l'erreur, mais la gérera.
La meilleure approche consiste à vérifier les fichiers journaux IIS. L'erreur devrait être présente. Il semble que le panneau de mise à jour encapsule la véritable erreur et l’émet comme une "erreur javascript".
Par exemple, mon erreur est que j'ai oublié de créer une classe [Serializable]. Bien que cela fonctionne correctement localement, il ne fonctionnait pas lorsqu'il était déployé sur le serveur.
J'ai eu cette erreur lorsque mon bouton dans GridView était dans un UpdatePanel ... lors de la duplication de mon code, j'ai constaté que l'erreur ci-dessus est due à une autre erreur interne "Une valeur Request.Form potentiellement dangereuse a été détectée par le client".
Enfin, j'ai découvert qu'un de mes TextBox sur la page avait un contenu XML/HTML, ce qui provoquait à son tour l'erreur ci-dessus Lorsque j'ai supprimé le xml/HTML et testé le clic du bouton ... cela a fonctionné comme prévu.
Ne pas rouvrir un ancien fil de discussion, mais cette solution est également utile.
Ajoutez validateRequest="false"
dans la directive <%@ Page
.
En effet, ASP.net examine les entrées du navigateur pour rechercher des valeurs dangereuses. Plus d'infos dans ce link
Brother ce morceau de code n'est pas une solution, il suffit de le changer pour
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args){
if (args.get_error() != undefined){
**alert(args.get_error().message.substr(args.get_error().name.length + 2));**
args.set_errorHandled(true);
}
}
</script>
et vous verrez que l'erreur est là mais vous ne la jetez pas sur l'interface utilisateur
J'ai le même problème, ici je donne mon problème et ma solution en espérant que cela aiderait quelqu'un:
Suite à la recommandation d'autres personnes, je suis allé au journal du serveur (Windows Server 2012 dans mon cas) dans:
Panneau de configuration -> Outils d'administration -> Observateur d'événements
Puis dans le côté gauche:
Journaux Windows -> Application:
Dans les avertissements, j'ai trouvé le message de mon site et dans mon cas, cela était dû à une référence nulle:
*Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.*
Et en vérifiant la fonction décrite dans le journal, j'ai trouvé un objet non initialisé et c'était tout.
Il pourrait donc s'agir d'une exception de référence nulle dans le code . espérons que quelqu'un trouvera cela utile, salutations.
J'ai également fait face au même problème, et aucun d'entre eux n'a fonctionné. Dans mon cas, cela a été corrigé en ajoutant ces lignes dans le fichier de configuration.
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="100000" />
</appSettings>
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="false" enableCaching="true"/>
</scripting>
</system.web.extensions>
@ JS5, j'ai également rencontré le même problème que vous: ImageButton provoquant des exceptions dans UpdatePanel uniquement sur le serveur de production et IE. Après quelques recherches, j'ai trouvé ceci:
Il y a un problème avec ImageButtons et UpdatePanels. La mise à jour à .NET 4.5 est corrigé ici. Cela a quelque chose à voir avec Microsoft changé l’axe x, y d’un bouton, passez de Int à Double afin que vous puissiez dire où sur le bouton sur lequel vous avez cliqué et qui lance une conversion Erreur.
J'utilise NetFramework 2.0 et IIS 6, la solution suggérée consistait donc à rétrograder la compatibilité IE en ajoutant une balise méta:
<meta http-equiv="X-UA-Compatible" content="IE=9" />
Je l'ai fait via la méthode Page_Load uniquement sur la page dont j'avais besoin pour:
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim tag As HtmlMeta = New HtmlMeta()
tag.HttpEquiv = "X-UA-Compatible"
tag.Content = "IE=9"
Header.Controls.Add(tag)
End Sub
J'espère que ça aide quelqu'un.
Vérifiez votre Application
Event Log
- mon problème était le module HTTP Telerik RadCompression
que j'ai désactivé dans le fichier Web.config.
"1- Allez sur le web.config de votre application"
"2- Ajouter une nouvelle entrée sous <system.web>"
3- Recherchez également la balise des pages et définissez validateRequest = False
Seulement ça marche pour moi. !!
Pour ceux qui utilisent le IIS interne de Visual Studio, essayez ce qui suit:
J'espère que cela aide quelqu'un là-bas!
Nous avons également rencontré le même problème, qui ne pouvait être reproduit que sur le serveur (c’est-à-dire pas localement, ce qui compliquait encore la tâche, car nous ne pouvions pas déboguer l’application) et lors de l’utilisation d’IE. Nous avions une page avec un panneau de mise à jour et dans ce panneau de mise à jour un modalpopupextender, qui contenait également un panneau de mise à jour. Après avoir essayé plusieurs solutions qui ne fonctionnaient pas, nous avons résolu le problème en remplaçant chaque imagebutton dans modalpopupextender par un lien, et l’image requise.
J'ai eu le même problème, quand j'ai essayé un moyen de le résoudre, j'ai découvert que le panneau de mise à jour causait ce problème. En fonction de mes besoins, je pourrais supprimer le panneau de mise à jour et résoudre le problème. C'est donc une solution possible au problème.
J'ai eu cette erreur quand j'avais ModalPopupExtender dans le panneau de mise à jour ... en insérant mon code, j'ai constaté que l'erreur ci-dessus est due au fait que updatepanel updatemode est conditionnel ... je le change donc toujours, le problème est résolu.
Mon correctif pour cela consistait à supprimer tout balisage HTML se trouvant dans la propriété Text = "" d'une zone de texte dans mon code asp.net, dans un panneau de mise à jour. Si vous avez plusieurs panneaux de mise à jour sur une page, cela les affectera tous, ce qui compliquera la tâche de savoir quel panneau présente le problème. La réponse de Chris ci-dessus m'amène à trouver ceci, mais sa réponse est très cachée, mais je pense que c'est une réponse très pertinente. Voici donc une réponse expliquée.
<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="<Auto Assigned>" CssClass="textboxItalicFormat"></asp:TextBox>
Le code ci-dessus donnera cette erreur.
Le ci-dessous ne sera pas.
<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="Auto Assigned" CssClass="textboxItalicFormat"></asp:TextBox>
Dans le deuxième code de zone de texte, j'ai supprimé les propriétés <et> de la propriété Text = "". Essayez ceci avant de passer du temps à ajouter des lignes de code de script, etc.
Pour moi, le problème était que j'utilisais un <button>
au lieu d'un <asp:LinkButton>
<add key="aspnet:MaxHttpCollectionKeys" value="100000"/ >
Ajoutez la clé ci-dessus à Web.config ou App.config pour supprimer cette erreur.
Parfois, à cause de certains codes, des balises HTML sont insérées dans un fichier texte, comme si je remplaçais certains caractères par des balises HTML de nouvelle ligne et que, par erreur, je les remplaçais également dans le texte censé être affiché dans une zone de texte multiligne. ma zone de texte multiligne contenait une nouvelle balise HTML de ligne BR qui venait dynamiquement à cause de ma fonction de remplacement de chaîne et j'ai commencé à obtenir cette erreur JavaScript. Ce code HTML étant affiché dans une zone de texte située dans un panneau de mise à jour, je commence à recevoir cette erreur. alors j'ai fait la correction et tout allait bien. Donc, avant de copier quoi que ce soit, veuillez regarder votre code et voir que toutes les balises sont bien fermées et qu'aucune donnée de code non pertinente ne parvient aux zones de texte ou aux listes déroulantes. Cette erreur est toujours due à des balises mal formées et à des données non pertinentes.
Ce n'est pas le vrai problème, si vous voulez voir pourquoi cela se produit, veuillez consulter le fichier journal des erreurs d'IIS.
en cas de studio visuel, veuillez naviguer vers:
C:\Users\User\Documents\IISExpress\TraceLogFiles\[your project name]\.
arrangez le fichier ici en ordre décroissant, puis ouvrez le premier fichier.
ça va ressembler à:
maintenant, faites défiler vers le bas pour voir le GENERAL_RESPONSE_ENTITY_BUFFER
it est le problème réel. maintenant le résoudre le problème ci-dessus va résoudre automatiquement.
Cela fonctionnait bien dans mon code .. j'ai résolu mon problème .. vraiment
Ajoutez le code ci-dessous dans web.config fichier.
<system.web>
<httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
</system.web>
J'avais ce problème lorsque j'ai mis à niveau mon projet vers la structure 4.5 et que GridView
avait un modèle de données vide. Quelque chose a changé et la déclaration suivante qui renvoyait précédemment le modèle de données vide renvoyait maintenant la ligne d'en-tête.
GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[0];
Je l'ai changé en bas et l'erreur a disparu et le GridView a commencé à fonctionner comme prévu.
GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[1];
J'espère que ça aidera quelqu'un.
Assurez-vous de mettre un tilde et une barre oblique (~ /) lorsque CDN est le répertoire racine. Je pense que c'est un problème dans IIS
Ce problème pour moi était dû à une erreur de mappage de base de données.
J'ai essayé d'utiliser un appel select () sur une source de données avec des erreurs dans le code derrière. Mes contrôles se trouvaient dans un panneau de mise à jour et la cause réelle était masquée.
Généralement, si vous pouvez supprimer temporairement le panneau de mise à jour, asp.net renverra un message d'erreur plus utile.
Avait ce problème lors de l'utilisation AsyncFileUploader dans un iFrame. Une erreur est survenue lors de l'utilisation de Firefox. Travaillé en chrome très bien. Il semblait que le chargement de la page parent ou de la page iframe n'était pas synchronisé et que la page parent ne trouvait pas les contrôles sur la page iframe. Ajout d'une alerte javascript simple pour dire que le fichier a été téléchargé. Cela a donné aux contrôles assez de temps pour se charger et, puisque les commandes étaient disponibles, tout se chargeait sans erreur.
Utilisez le code suivant ci-dessous dans updatepanel.
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args){
if (args.get_error() != undefined){
args.set_errorHandled(true);
}
}
</script>
comme mon ami @RaviKumar a mentionné ci-dessus, l'une des raisons du problème suivant est qu'une partie des données transférées du code à l'interface utilisateur contient des balises html brutes qui rendent la requête invalide, par exemple, j'avais un textarea et j'avais défini sa valeur dans le code par code ci-dessous
txtAgreement.Text = Data.Agreement
Et lorsque j'ai compilé la page, j'ai pu voir une balise html brute dans textarea. J'ai donc remplacé textarea par div sur lequel innerhtml fonctionne et rend le html (au lieu d'injecter des balises html brutes dans l'élément) et cela a fonctionné pour moi.
bonne codage
la réponse pour moi était de réparer un contrôle gridview qui contenait un champ de modèle avec une liste déroulante chargée avec un monstrous quantité d'éléments sélectionnables - j'ai remplacé le DDL par un champ d'étiquette dont les données sont générées à partir d'une fonction. (À l'origine, j'allais autoriser l'édition de gridview, mais je suis passé à autoriser les éditions sur un panneau séparé affichant le DDL pour ce champ uniquement pour cet enregistrement). J'espère que cela pourrait aider quelqu'un.