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?
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
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
In Ihrer Konfiguration sollte es etwas namens maxReceivedMessageSize geben, damit spielen. – Umitk