いくつかのファイルを受信(アップロード)するためにHttpHandlerを作成しました。 IIS 8上で動作しています。 私のコードは動作しますが、非常に小さいファイル(< 1〜2 MB)に対してのみ動作します。 大きなファイルの場合、コードはちょうどクラッシュします。例外をスローしなくても、クライアントは "500 internal server error"メッセージを停止して返します。ストリームサイズのためにHttpHandlerでクラッシュする
私のコードは次のようになります。
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());
}
私は私のデバッガが付属得るとき、それはちょうど最後の行で停止します。
私の設定は次のようになります。私は私の最後の行は問題であるべき理由を私は理解していないとして、この時点で迷ってしまいました
<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>
? それ以外のものはありますか?