J'ai un httphandler que j'utilise pour gérer certaines images sur le site Web du client. Lorsque je émise le flux d'images sur l'objet de réponse et que vous appelez occasionnellement, une erreur est lancée. Voici un codeblock de ce que j'ai lu, cette exception est causée par une déconnexion cliente avant la fin du processus et qu'il n'y a rien à affleurer. p> Voici une sortie de ma page d'erreur p> context.response.flush tombe à la ligne 75. p> y a-t-il un façon de vérifier cela avant de passer la chasse sans l'envelopper dans un bloc d'essai / prise. P> p>
4 Réponses :
Personnellement dans votre implémentation depuis la ligne suivante est la réponse.end (), supprimez simplement l'appel à la réponse.flush () comme réponse.end () prend soin de tout pour vous. P>
pendant que je suis d'accord avec Mitchel - Il y a peu de besoin Pour appeler Flush comme vous êtes sur le point d'appeler fin, si vous utilisez cela ailleurs, vous pouvez essayer d'appeler réponse.isClientConnnue code>
premier. P>
Obtient une valeur indiquant si le client est toujours connecté au serveur. P> blockQuote>
Alors, pourrais-je envelopper mon .flush () et .end () dans un .isclientconnected et avoir ce problème, pensez-vous? Les clients du client ne reçoivent pas l'erreur sur leurs écrans, je viens d'obtenir des courriels d'Elmah à chaque fois. Juste une contrariété mineure plus que tout.
Vous pouvez certainement envelopper le .flush dans le chèque - pas trop sûr de ne pas avoir de répercussions de ne pas appeler .end ... Je suppose qu'il y a un processus de course à pied là-bas qui provoque des gens de se déconnecter avant d'avoir fini de générer l'image?
Je peux confirmer que l'emballage de rincer à l'intérieur d'un .isClientConnected peut jeter la même exception; est arrivé à moi maintenant. Coller avec .end ()
Je me rends compte que c'est un ancien poste mais il est venu quand je cherchais une réponse à un problème similaire. Ce qui suit est en grande partie verbatim de Cela répond donc . Plus d'informations de fond est disponible sur est une réponse.end () considéré comme nocif? .
Remplacez ceci: avec ceci: p> httpcontext .Current.response.end (); code> p>
pour les futurs lecteurs ..
J'ai couru dans ce cas où la réponse.end () jette une erreur car le client est déconnecté. P>
Une erreur s'est produite lors de la communication avec l'hôte distant. L'erreur Le code est 0x80070057 P> blockQuote>
Curthly Un CRLF dans la statutDescription a entraîné la fermeture de la connexion. p>
xxx pré> ne peut insérer la valeur null dans la colonne '', la table ''; La colonne ne permet pas aux nuls. Insertion échoue.
\ r \ n strong> La déclaration a été terminé p> blockQuote> le supprimer corrigé mon problème. P>
Response.StatusDescription = ex.Message.Replace("\r\n", " ");