Ich habe einen HttpHandler geschrieben, um einige Dateien zu erhalten (upload). Es läuft auf IIS 8. Mein Code funktioniert, aber nur für sehr kleine Dateien (< 1-2 MB). Bei größeren Dateien stürzt der Code einfach ab - ohne eine Ausnahme auszulösen - er stoppt einfach und sendet eine "500 interne Serverfehler" -Meldung an den Client zurück.Absturz in HttpHandler wegen Stream-Größe
Mein Code sieht wie folgt aus:
int bufferSize = 4096;
string parameterString;
using (var bs = context.Request.GetBufferlessInputStream(true))
using (var ms = new MemoryStream())
{
byte[] fileContents = new byte[bufferSize];
int charsRead = bs.Read(fileContents, 0, bufferSize);
while (charsRead > 0)
{
ms.Write(fileContents, 0, bufferSize);
charsRead = bs.Read(fileContents, 0, bufferSize);
}
parameterString = Encoding.UTF8.GetString(ms.ToArray());
}
Wenn ich meine Debugger es einfach nicht mehr in der letzten Zeile angebracht bekommen.
Meine Config sieht wie folgt aus:
<basicHttpBinding>
<binding name="XXXX" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="21474836470" maxBufferSize="2147483647" maxReceivedMessageSize="21474836470">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
</binding>
</basicHttpBinding>
ich an dieser Stelle bin verloren, wie ich ein Problem sein, verstehe nicht, warum sollte meine letzte Zeile? Ist es etwas anderes?