我们有一个应用程序通过拇指驱动器接收图像,并通过服务将图像上传到中央服务器。最初的默认设置是将图像质量设置为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中的设置或限制。