サムドライブを介して画像を受信し、サービスを介して画像を中央サーバーにアップロードするアプリケーションがあります。元々、デフォルトでは、画像の品質を 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 内の設定または制限です。