2009-12-01 4 views
0

Je travaille sur l'uploader de fichiers ASP.NET et essaye actuellement de résoudre le problème suivant: Supposons à un moment donné que le côté serveur HttpModule décide que le flux de données entrant est trop long et doit être abandonné. Ainsi, le code qui traiterait cette situation à première vue serait très simple. Comme ceci:Interruption de la requête POST

try { 
    ... 
    if (size >= maxSize) 
    throw new InvalidOperationException("File is too large!"); 
} 
catch (InvalidOperationException e) { 
    HttpContext.Current.Response.Write(e.Message); 
    HttpContext.Current.Response.End(); 
    return; 
} 

Mais malheureusement cela ne fonctionne pas. Apparaît navigateur n'a pas reçu la réponse et continue de transférer des données au serveur. Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas et comment serait une solution de contournement?

Répondre

0

Essayez d'appeler le Response.Close() à la place. Cela fermera immédiatement la connexion socket. Vous devrez peut-être appeler Response.Flush() avant main.

+0

Merci. Je vais vérifier ça. En fait, j'avais résolu le problème: j'étais capable d'obtenir le statut 'erreur' via une requête GET parallèle séparée qui est normalement responsable de l'obtention d'informations de progression. –