Laboratoire Microsoft |  CertifExpress 
 Le Forum de Réfèrence sur les Technologies Microsoft - http://www.forum-microsoft.org

IIS 8.5 : Problème de transfert de fichier TOPIC_SOLVED

Postez vos messages sur le serveur Web de Microsoft

Modérateurs : Modérateurs, Modérateurs_Applicatifs

IIS 8.5 : Problème de transfert de fichier

Message par c-colle » Lun 27 Juin 2016, 13:48

Bonjour,

Sur notre instance IIS 8.5, un morceau de code tout simple permet d'uploader des fichiers dans un répertoire.

Un fichier de 3.27 Mo passe sans problème alors qu'un fichier de 6.54 Mo ne passe pas et déclenche une erreur "La connexion a été réinitialisée" dans Firefox.

Dans les journaux d'évènements, je constate bien le problème :

Event code: 3004
Event message: La taille du postage a dépassé les limites autorisées.
...

Il me semble que par défaut la taille maximale est de 30 Mo non ?

J'ai modifié la configuration de IIS pour appliquer ceci :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="300000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

(en fait, j'ai multiplié par 10)

Mais le problème reste inchangé. Un fichier de 6Mo ne passe pas et déclenche une erreur dans les journaux d'évènements :

Event code: 3004
Event message: La taille du postage a dépassé les limites autorisées.
Event time: 24/06/2016 15:59:48
Event time (UTC): 24/06/2016 13:59:48
Event ID: 2dcde46ceb374969be78bd8d1369c827
Event sequence: 4
Event occurrence: 1
Event detail code: 0

...

Exception information:
Exception type: HttpException
Exception message: Longueur maximale de la demande dépassée.
à System.Web.HttpRequest.GetEntireRawContent()
à System.Web.HttpRequest.GetMultipartContent()
à System.Web.HttpRequest.FillInFormCollection()
à System.Web.HttpRequest.EnsureForm()
à System.Web.HttpRequest.get_Form()
à System.Web.HttpRequest.get_HasForm()
à System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
à System.Web.UI.Page.DeterminePostBackMode()
à System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Faut-il changer une valeur autre part ? Je ne trouve pas d'autres limites ?

Code de la page :

Code : Tout sélectionner
<%@ Page Language="VB" %>

<script runat="server">

    Protected Sub Start_upload(ByVal sender As Object, _
      ByVal e As System.EventArgs)
        If FileUpload1.HasFile Then
            Try
                FileUpload1.SaveAs(Server.MapPath("~/Uploads/") & FileUpload1.FileName)
                Label1.Text = "Nom du fichier : " & _
                   FileUpload1.PostedFile.FileName &  "<br>" & _
                   "Taille du fichier : " & _
                   FileUpload1.PostedFile.ContentLength / 1024 / 1024 & " Mo <br>" & _
                   "Type MIME : " & _
                   FileUpload1.PostedFile.ContentType
            Catch ex As Exception
                Label1.Text = "ERREUR: " & ex.Message.ToString()
            End Try
        Else
            Label1.Text = "Aucun fichier sélectionné."
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Téléchargement de fichiers</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Start_upload" Text="Télécharger le fichier" />&nbsp;<br />
        <br />
        <asp:Label ID="Label1" runat="server"></asp:Label></div>
    </form>
</body>
</html>



Merci !
Avatar de l’utilisateur
c-colle
Senior
Senior
 
Message(s) : 302
Inscription : Sam 09 Oct 2004, 22:42
Localisation : Metz / Nancy

Re: IIS 8.5 : Problème de transfert de fichier

Message par ndietrich » Lun 27 Juin 2016, 19:11

Tu dois aussi configurer maxRequestLength (https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx) en plus de maxAllowedContentLength. Sa valeur par défaut est de 4096Kb, ce qui explique que tu puisses envoyer un fichier de 3.27Mb.
Nicolas Dietrich
Software Development Manager Oracle - Oracle Database Clusterware Team
Ex-Directeur R&D Secib
Ex-Microsoft (Internet Developer Escalation Engineer & Technical Account Manager Dev)
Ex-MSDN Blog: http://blogs.msdn.com/nicd/
ndietrich
Grand Master Flash
Grand Master Flash
 
Message(s) : 2586
Inscription : Mer 30 Jan 2002, 8:23

Re: IIS 8.5 : Problème de transfert de fichier  TOPIC_SOLVED

Message par c-colle » Mar 28 Juin 2016, 16:29

Ah oui, je viens de tester ça marche mieux !

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpRuntime maxRequestLength="300000000" executionTimeout="600" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="300000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

Merci :)
Avatar de l’utilisateur
c-colle
Senior
Senior
 
Message(s) : 302
Inscription : Sam 09 Oct 2004, 22:42
Localisation : Metz / Nancy

Re: IIS 8.5 : Problème de transfert de fichier

Message par ndietrich » Mar 28 Juin 2016, 17:14

Par contre maxRequestLength est en kB alors que maxAllowedContentLength est en bytes. Si je me trompe pas ton maxRequestLength="300000000" signifie donc que tu autorise des requêtes jusqu'à 286Gb. Si c'est pour un système de production je te conseille de le diminuer à une taille résonnable.
Nicolas Dietrich
Software Development Manager Oracle - Oracle Database Clusterware Team
Ex-Directeur R&D Secib
Ex-Microsoft (Internet Developer Escalation Engineer & Technical Account Manager Dev)
Ex-MSDN Blog: http://blogs.msdn.com/nicd/
ndietrich
Grand Master Flash
Grand Master Flash
 
Message(s) : 2586
Inscription : Mer 30 Jan 2002, 8:23

Re: IIS 8.5 : Problème de transfert de fichier

Message par c-colle » Mer 29 Juin 2016, 10:29

Merci pour cette remarque, je vais adapter la configuration.
Avatar de l’utilisateur
c-colle
Senior
Senior
 
Message(s) : 302
Inscription : Sam 09 Oct 2004, 22:42
Localisation : Metz / Nancy


Retour vers Internet Information serveur (IIS)

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)



Accueil | News | Articles | Tips | Outils | Certification | Easters Eggs
Essentiels | Glossaire | Vidos | Whitepapers | Essentiels | Bote Scripts
Conditions d'utilisation & Copyright | Respect de la vie prive