Question

J'ai une application Web que j'héberge, et un de mes clients rapporte que certaines bibliothèques JavaScript Telerik qui sont incluses dans le site (mais pas toutes) ne fonctionnent pas correctement.

Ce que j'ai pu diagnostiquer jusqu'à présent, c'est qu'à un moment donné au processus, les ressources WebBresource.AXD qui contiennent le code JavaScript Telerik sont bloquées. Demander au client de naviguer directement vers le fichier AXD lui-même avec la même question de questionnalité donne un message d'erreur "La connexion au serveur a été réinitialisée" dans Internet Explorer.

Le client a essayé de télécharger ce fichier à partir de plusieurs machines à son emplacement, ainsi qu'une machine en dehors de son pare-feu et de son réseau, et une machine qui fonctionne chez elle, et obtient la même erreur à chaque fois. Ils ont essayé d'utiliser Internet Explorer et Firefox.

Cependant, je suis en mesure de télécharger avec succès le même fichier à la fois dans notre réseau d'hébergement, à l'extérieur de celui-ci et à partir de ma connexion domestique.

Selon les journaux IIS, toutes les tentatives enregistrées pour télécharger la ressource ont donné un résultat HTTP OK 200.

D'autres choses qui ont été tentées:

  • Un lien vers un 404.AXD non existant (a donné le message d'erreur ASP.NET 404 jaune comme prévu)
  • Un lien vers WeBresource.Axd, mais avec une requête invalide pointant vers une ressource qui n'existe pas (a donné au ASP.NET jaune invalide Viewstate ou une chaîne de base64 non valide, comme prévu)
  • Un lien vers le même webrersource.axd, mais via un en-tête d'hôte différent (même message d'erreur "Connection Reset").

Je suis maintenant à court de ce qui pourrait même être le problème à ce stade. Notre serveur d'hébergement héberge des dizaines d'applications ASP.NET différentes (y compris plusieurs instances de celle en question) depuis des années et c'est la première plainte que j'ai vue à ce sujet.

Je suis sûr à 99% que le problème est quelque chose à la fin du client avec un pare-feu inapproprié ou une configuration de filtrage de contenu de routeur, mais cela n'explique pas pourquoi le client voit les mêmes problèmes à l'extérieur du pare-feu et à la maison.

Des idées sur ce qui pourrait mal tourner ou même quelles autres questions poser? Quelqu'un a-t-il vu quelque chose même à distance comme ça?

Était-ce utile?

La solution 2

Je n'ai jamais compris quel était le problème, mais la mise à jour des Radcontrols vers la dernière (Finale Q1'09) semblait résoudre le problème.

Autres conseils

Si cela se produit avec les RadControls classiques pour ASP.NET, essayez de définir useembeddedScripts = "false" pour les contrôles de la page. Cela les fera servir tous les scripts du dossier RadControls (fichiers .js physiques) au lieu d'utiliser des ressources intégrées (webrersource.axd). Naturellement, vous devez vous assurer que vous disposez des fichiers de script dans votre dossier RadControls.

Si cela se produit avec les RadControls pour ASP.NET AJAX, les scripts de contrôle sont téléchargés à l'aide du Script Manager (ScriptreSource.AXD et non webrersource.axd). Dans tous les cas, vous pouvez essayer d'utiliser le Telerik RadscriptManager au lieu de l'ASP.NET ScriptManager - Cela combinera et comprimera tous les scripts en une seule demande.

Enfin, vous pouvez demander à votre client de télécharger et d'installer Fiddler pour IE ou Firebug pour Firefox et vérifier ce qui se passe exactement avec les demandes qui échouent (par exemple, la réponse du serveur, ce qui est dans l'organisme de réponse, etc.).

Éliminer WebResource.axd et ScriptResource.axd Depuis la page, vous devez

  • Ouvrez le AssMly associé à l'aide du réflecteur ou ILSPY, puis enregistrez ses fichiers JS intégrés de la section Ressources.
  • Maintenant, ajoutez-les comme références de script en utilisant ASP: ScriptManager

Plus tard, ces définitions seront rendues comme suit:

<script src="staticJS1.js" type="text/javascript"></script> 
<script src="staticJS2.js" type="text/javascript"></script> 

Et ne sera plus bloqué.

<asp:ScriptManager ID="Scriptmanager1" runat="server">
        <Scripts>
            <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Assembly="System.Web.Extensions"
                Path="~/staticJS1.js" />
            <asp:ScriptReference Name="MicrosoftAjax.js" Assembly="System.Web.Extensions" Path="~/staticJS2.js" />
        </Scripts>
</asp:ScriptManager>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top