J'ai cherché SO et trouvé this question, mais ce n'est pas tout à fait ce que je demande. Je me demande si un IHttpModule peut être créé pour inspecter ContentLength de la requête, et si c'est le cas, soit rediriger, soit rejeter cette requête et en créer une nouvelle. En particulier, j'essaie de gérer les téléchargements de fichiers image, mais j'aimerais que la demande continue sur la page de téléchargement avec une sorte d'avertissement plutôt qu'une page d'erreur plate. J'ai ce morceau de code qui est frappé avec une grande demande:Téléchargement de fichiers dépassant la limite de longueur de la requête Asp.net?
private void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
if (context.Request.ContentLength > (4 * 1024 * 1024))
{
}
}
Le chemin d'exécution entre dans ce bloc IF comme je veux. Mais d'ici, je ne suis pas vraiment sûr de l'endroit où aller. Est-ce une mauvaise approche? Edit: En l'état (sans ce module), Fiddler signale que IIS retourne un code 500. Je voudrais éviter cela et avoir le code retourner un 200 de la page demandée, juste avec l'avertissement comme je l'ai dit.
Est-ce la raison pour laquelle le lien fourni par rm appelle ReadEntityBody dans une boucle? – Amy
Oui, exactement. Il lit dans toute la demande afin qu'il puisse envoyer une réponse après. –