私はDiskCacheプラグインで基本的なImageResizerライブラリを使用しています。ディスク容量のため、私はCDNを使用してWebサーバーのスペースを解放する必要がありました。ドキュメントごとに、私はenabled
プロパティを追加しましたし、設定にfalse
に設定し、ローカルディスクキャッシュを作成しないようにするにDiskCacheプラグインを無効にすると、イメージが表示されません。
:
残念ながら<diskcache dir="~/Content/Resize" enabled="false" />
を画像を要求するときに、今、何も表示されません。すべての例外を有効にした後、私はImageResizer.Plugins.Basic
にこのルーチンに絞り込むことができた:
public static void SaveJpeg(Image b, Stream target, int quality)
{
if (quality < 0)
quality = 90;
if (quality > 100)
quality = 100;
using (EncoderParameters encoderParams = new EncoderParameters(1))
{
using (EncoderParameter encoderParameter = new EncoderParameter(Encoder.Quality, (long) quality))
{
encoderParams.Param[0] = encoderParameter;
// NOTE: this would appear to be the trigger
b.Save(target, DefaultEncoder.GetImageCodeInfo("image/jpeg"), encoderParams);
// NOTE
}
}
}
System.NotSupportedException 「指定したメソッドがサポートされていません。」 "at System.Web.HttpResponseStream.get_Position()"
誰でもこの問題を解決できますか?
HttpResponseには(それはそれをサポートしていません)Positionプロパティがスロー理由です。 ImageResizerライブラリーにシークできるターゲット・ストリームが必要なようです。実際のターゲットストリームに書き込む前に、まず画像を一時的なストリーム(おそらくMemoryStream)に保存します。 –
@Ilian Pinzonこれが新しい動作であるかどうか知っていますか?私はライブラリーがターゲット(応答)ストリームに保存作業を行ったと仮定しています... –
Diskaccheプラグインを無効にしたためです。以前はFileStreamに書き込んでいたでしょう。 –