我们有一个应用程序通过拇指驱动器接收图像并通过服务将图像上传到中央服务器。最初的默认设置是将图像的质量设置为 92 并从原始图像缩小。增强功能是允许对其进行配置。
我们正在测试更改,发现当图像质量设置为 100 时,它可以毫无问题地进行本地备份,但无法传输图像,我们从服务中收到错误中止消息。当我们将图像恢复为原始大小但恢复到 92 时没有问题。我们可以将某些计算机的质量移至 96 其他 95,任何高于该值的计算机都会产生错误。
这是我们设置图像质量并在传输前保存到本地目录的代码。
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
img.Save(path, jpegCodec, encoderParams);
这是我们在客户端配置文件中的绑定。
<binding name="basicHttpBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00"
sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="524288000" maxBufferPoolSize="524288000"
maxReceivedMessageSize="524288000" messageEncoding="Text"
textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="524288000"
maxArrayLength="524288000" maxBytesPerRead="524288000"
maxNameTableCharCount="524288000" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
这些图像大约为 2 兆图像,因此 http 请求大小不是一个因素。
关于我应该在哪里寻找的任何想法。该过程有效,因此它是 IIS7 或 .NET 中的设置或限制。