ImageResizer S3Reader2 - 404仅在提供查询参数时出错

时间:2015-09-29 12:23:10

标签: asp.net asp.net-mvc amazon-s3 imageresizer

我在ASP.NET MVC5项目中使用ImageResizer v3.4.3和S3Reader2插件(5.2.3,.net 4.5)

如果我没有提供查询字符串,一切都可以正常使用本地图像和S3托管图像。

http://localhost/local-img-folder/filename.jpg?width=100
http://localhost/s3/bucket-name/folder/filename.jpg

如果我想获取以下网址,我会收到404错误:

http://localhost/s3/bucket-name/folder/filename.jpg?width=100

这是我的缩放器Web.Config部分

  <resizer>
    <plugins>
      <add name="MvcRoutingShim" />
      <add name="S3Reader2" prefix="~/s3" region="eu-west-1" buckets="XXXXXXXXXXX" accessKeyId="XXXXXXXXXXXX" secretAccessKey="XXXXXXXXXXXXXXXXXXX" />
    </plugins>
  </resizer>

通过使用Fiddler,我注意到当我尝试使用查询参数拉出S3图像时,IIS甚至没有尝试联系AWS,并且可以在ELMAH日志中找到以下错误:

System.Web.HttpException (0x80004005): No image exists at C:\DEV\GitHub\<projectpath>\s3\bucket-name\folder\filename.jpg
   at ImageProcessor.Web.Services.LocalFileImageService.<GetImage>d__0.MoveNext()

为什么添加查询参数会导致Resizer使用LocalFileImageService?

1 个答案:

答案 0 :(得分:1)

ImageProcessor.Web.Services.LocalFileImageService不是ImageResizer的一部分,它是ImageProcessor的一部分。

您安装了两个映像服务器,后者正在接管请求并导致失败。