Impossible de télécharger un fichier volumineux à l’aide de la classe webclient dans l’application Web ASP.NET C#

la programmation


Je dois télécharger un fichier sur un site de détection de virus en utilisant ce code

C#
public string Scan(string file)
{
    var v = new NameValueCollection();
    v.Add("key", APIKey);
    var c = new MyWebClient() { QueryString = v };
    
    c.Headers.Add("Content-type", "binary/octet-stream");
    ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
    byte[] b = c.UploadFile(scan, "POST", file);
    string json = Encoding.Default.GetString(b);
    var r = ParseJSON(json);
    if (r.ContainsKey("scan_id"))
    {
        return r["scan_id"];
    }
    throw new Exception(r["result"]);
}

Ce code fonctionne bien avec des fichiers plus petits, mais une fois que j’essaie de télécharger des fichiers d’une taille de 50 Mo, j’obtiens une exception.

Le serveur distant a renvoyé une erreur : (413) Entité de demande trop grande.

J’ai recherché cette erreur et essayé d’augmenter les valeurs maxAllowedContentLength et maxRequestLength à 2147483647.

Cela n’a pas aidé. Quoi que je fasse, j’obtiens toujours l’erreur mentionnée ci-dessus

Existe-t-il un moyen de télécharger un fichier volumineux sur un site à l’aide de la classe WebClient ? Existe-t-il un autre moyen de télécharger le fichier le plus volumineux dans les formulaires Web ASP.NET ?

Merci beaucoup d’avance

Ce que j’ai essayé :

J’ai recherché cette erreur et essayé d’augmenter les valeurs maxAllowedContentLength et maxRequestLength à 2147483647.

Solution 1

Le message d’erreur est assez explicite. Le serveur est configuré pour autoriser uniquement les téléchargements de moins de 50 Mo. Vous ne pouvez rien y faire dans votre code.

Si vous ne contrôlez pas le code et la configuration du serveur, vous ne pouvez rien faire pour résoudre ce problème.

コメント

タイトルとURLをコピーしました