IIS & Chrome: échec du chargement de ressource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
Je suis récemment tombé sur un Chrome question qui je pense vaut la peine de le partager avec vous.
J'ai travaillé sur un écrit de l'API à l'aide d'un HttpHandler primaire doit renvoyer les données json. Mais lorsqu'une erreur se fait je voulais afficher un fichier html. Qui marche très bien sous IE et FF, mais pas dans google Chrome.
À la recherche pour les outils de développement a révélé cette erreur: net::ERR_INCOMPLETE_CHUNKED_ENCODING
Google dit pas beaucoup sur cette question alors qu'il a été vu très bien. Tout ce que j'ai à savoir ce que c'était comme par magie disparaître après un certain temps.
J'ai découvert qu'il pose sur ces lignes de code:
result.StoreResult(context);
context.Response.Flush();
context.Response.Close(); //<-- this causes the error
Après la suppression de la dernière ligne cela a bien fonctionné. Je ne sais pas pourquoi seulement Chrome a/a un problème avec ça, mais il me semblait que si j'ai fermé le flux de réponse avant le chrome fini de le lire.
J'espère que cela aidera ceux d'entre vous de venir à travers le même ou un problème similaire.
Maintenant, ma question:
Quelle est la meilleure pratique dans la fermeture/rinçage du flux de la réponse? Existe-il des règles?
- Cochez cette ressource Réponse.Fin, La Réponse.Fermer, et Comment les Commentaires des Clients Nous Aident à Améliorer la Documentation MSDN; j'ai le même problème en essayant d'envoyer un Bloc de réponse, peut-être que votre réponse est segmenté (par défaut).
- J'ai exactement le même problème avec un fichier JSON enveloppé dans un JSONP de rappel. Il arrive aussi quand je demande le fichier à partir d'une télécommande CA.
- Dans mon cas, j'ai eu l'
net::ERR_INCOMPLETE_CHUNKED_ENCODING
erreur, parce que le câble de réseau du serveur n'était pas entièrement connecté. - J'ai récemment découvert que mon Kaspersky bloque les réponses de plus de 2 MO, et que la cause de cette erreur. J'ai dû mettre en pause kaspersky protection pour que la page se charge correctement.
- avez-vous essayé et d'obtenir une solution finale ?
Vous devez vous connecter pour publier un commentaire.
Selon ASP.NET définit le codage de transfert comme chunked sur prématuré de tirer la Réponse:
Voici le code C# que j'ai utilisé pour la prévention de la ASP.NET de chunking la réponse par le réglage de l'en-tête requis:
Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
Références: stackoverflow.com/questions/37434368/... et forums.asp.net/p/2095940/... - des Problèmes peut-être Content-Length dans google Chrome à l'aide de UpdatePanels. Je ne sais pas.J'ai été en cours d'exécution dans cette erreur lors de la génération d'un fichier et en le poussant à l'utilisateur pour le téléchargement, mais seulement de temps en temps. Quand il n'en a pas manqué, le fichier a été constamment 2 octets court. Close() force à la ferme la connexion, si c'est fini ou pas, et dans mon cas, il ne l'était pas. Laissant, comme il est suggéré dans la question, le fichier résultant contient à la fois le contenu généré ainsi que le code HTML pour la page entière.
La solution était de remplacer
avec
qui fait la même chose, mais sans couper la transaction court.
Dans mon cas, le problème était lié au cache et qui se passait lors d'une SCRO demande.
Forcer l'en-tête de réponse
Cache-Control
àno-cache
résolu mon problème:[ à l'aide de Symfony HttpFoundation composant ]
J'avais aussi la même erreur. Ce problème a été avec l'utilisateur du serveur web de l'autorisation sur le dossier du cache.
Sur la possibilité que quelqu'un est en débarquant ici comme un résultat de problèmes avec leurs ASP.net projet de Base, j'ai été en mesure de résoudre par l'ajout de l'IIS middleware.
Ceci est fait par l'ajout de
UseIISIntegration
lors de l'instanciation de votre hébergeur instance.CreateDefaultBuilder()
appelle déjàUseIISIntegration
. Donc je ne sais pas si cela signifie que ce qui précède est déjà le cas en .Net de Base ou ce que parce que monprogram.cs
crée de la valeur par défaut du générateur comme l'a expliqué.Une fois que j'ai eu le même problème et la raison principale en était couché dans mon contrôleur de type de retour.
Si vous essayez de retourner un
C# object
juste est-à -, vous aurez seulementnet::ERR_INCOMPLETE_CHUNKED_ENCODING
alors n'oubliez pas de sérialiser vos objets complexes avant de les envoyer pourjava script
client (ouView
).c'est à dire mon contrôleur de type de retour est :
Qui a causé
INCOMPLETE_CHUNKED_ENCODING
d'erreur, donc j'ai essayé de réparer mon erreur avec quelque chose comme: