Maximale http-request Größe für asp-web.api mit json

Habe ich den web-api-Projekt.

Muss ich posten, da json-Daten mit file-codiert base64-Zeichenfolge (bis zu 200 mb).

Wenn ich Daten senden, bis zu etwa 10 mb, dann die nächste Methode in der Regel erhalten Sie ordnungsgemäß ausgefüllt Modell ImportMultipleFileModel.

[HttpPost]
    public async Task<HttpResponseMessage> ImportMultipleFiles(ImportMultipleFileModel importMultipleFileModel)
    { 
        var response = ImportFiles(importFileModel);
        return response;
    }

Wenn ich mehr senden, dann Modell null ist.

Warum?

So wechsele ich die Methode Signatur:

    [HttpPost]
        public async Task<HttpResponseMessage> ImportMultipleFiles()
        {
            ImportMultipleFileModel importMultipleFileModel = null;
            var requestData = await Request.Content.ReadAsStringAsync();
            try
            {
                JsonConvert.
                importMultipleFileModel = JsonConvert.DeserializeObject<ImportMultipleFileModel>(requestData);
            }catch(Exception e)
            { }
}

Sowie für verschlüsselte 30 mb-Datei, die ich normalerweise nicht bekommen requestData als json-string. Für 60 mb bekomme ich leere Zeichenfolge.
Warum?

Nächsten i-change-Methode zu

    [HttpPost]
        public async Task<HttpResponseMessage> ImportMultipleFiles()
        {
            ImportMultipleFileModel importMultipleFileModel = null;
            var requestData = Request.Content.ReadAsStringAsync().Result;
            try
            {
                importMultipleFileModel = JsonConvert.DeserializeObject<ImportMultipleFileModel>(requestData);
            }catch(Exception e)
            { }
}

Und Deserialisierung fehlgeschlagen, da der OutOfMemoryException.

Warum?

UPD:
maxRequestLength, maxAllowedContentLength gesetzt, um 2147483647

Sie versucht sich zu serialise 60mb string in ein Konstrukt, welches nicht für diese. Sie würde nicht wollen, zu halten, 60 MB Speicher pro Anfrage keiner Weise. Dies ist, warum Sie verwenden Sie entweder streams, oder Sie teilen sich die Anfragen

InformationsquelleAutor vitm | 2016-07-25

Schreibe einen Kommentar