2016-05-17 9 views
1

Ich verwende eine ASP.Net-Web-API, die in C# geschrieben ist und in IIS6 gehostet wird. Wenn ein POST an die API gesendet wird, wird der HTTP-Status 413 zurückgegeben. Die API (nicht WCF) gibt die Antwort zurück, solange der Inhalt im Hauptteil ungefähr 32 + KB beträgt. Wenn die Größe wie 40 KB ist, dann ist es falsch.Web-API gibt den Status 413 zurück

Unten ist der Code-Snippet auf der Verbraucherseite

string apiUrl = "https://a.com/api/emails/send"; 
using (WebClient client = new WebClient()) 
{ 
    client.Headers.Add("Content-Type", "application/json"); 
    client.Headers.Add("Accept", "application/json"); 
    try 
    { 
     var jsonResponce = client.UploadString(apiUrl, jsonRequest); 

     var sendEmailResponce = JsonConvert.DeserializeObject<SendEmailResponce>(jsonResponce); 
     var emailMessageId = sendEmailResponce.EmailMessageId; 
     Console.WriteLine("email sent."); 
    } 
    catch (WebException exp) 
    { 
     var error = exp.ToString(); 
     Console.WriteLine(error); 
    } 
    catch (Exception exp) 
    { 
     var error = exp.Message; 
    } 
} 

ich IIS6 verwende. Gibt es eine Einstellung in IIS/Code Änderungen auf dem Client kann mir helfen, um dieses Problem zu umgehen?

+0

Haben Sie die Konfigurationsdateien für Ihren gehosteten Dienst überprüft? Wie ist der Service aufgebaut? Meistens können solche Limits in den Konfigurationsdateien gesetzt/geändert werden, vielleicht die Konfigurationsdatei hier einbeziehen (hauptsächlich die Endpunktkonfiguration für Ihren Service) – Icepickle

+0

Sind Sie sicher, dass es 40Kb und nicht 4MB ist, da letzteres die maximale Dateigröße von ASP.NET ist ? Sehen Sie sich auf jeden Fall die Änderung der Dateigröße an (http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/) in der Web-API. – strickt01

+0

In Ihrer Konfiguration sollte es etwas namens maxReceivedMessageSize geben, damit spielen. – Umitk

Antwort

1

versuchen dies,

  1. Launch „Internet Information Services (IIS) Manager“
  2. die Website auswählen, die Sie Ihre Web-Anwendung unter sie hosten.
  3. Im Abschnitt Funktionen, doppelklicken Sie auf „Configuration Editor“
  4. Unter „Section“ wählen: system.webServer dann serverRuntime
  5. Ändern Sie den „Upload“ Abschnitt wie 20MB zu sein (der Wert ist in Bytes)
  6. Klicken Sie auf Übernehmen.
+0

Danke Pranav. Es funktionierte –

Verwandte Themen