我一直在使用带有DiskCache插件的基本ImageResizer库。由于磁盘空间的限制,我需要转而使用CDN来释放网络服务器上的空间。禁用DiskCache插件时,图像无法显示。
为了防止创建本地磁盘缓存,按照该文档中,我在配置增加了enabled
属性和设置为false
:
<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 “在System.Web.HttpResponseStream.get_Position()”
任何人都可以帮助解决这个问题?
的HttpResponse不能贪图这就是为什么Position属性抛出(它不支持它)。它看起来像ImageResizer库需要一个可以搜索的目标流。在写入实际目标流之前,首先将图像保存到临时流(可能是MemoryStream)。 –
@Ilian Pinzon你知道这是新的行为吗?我假设在一个阶段图书馆没有工作保存到目标(响应)流... –
我敢打赌,这是因为你禁用了Diskacche插件。它可能在写入FileStream之前。 –