0

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

4

0 に答える 0