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

ImageResizer S3Reader2 - 404 Error only when query parameters are provided

我在 ASP.NET MVC5 项目(5.2.3、.net 4.5)中使用带有 S3Reader2 插件的 ImageResizer v3.4.3

如果我不提供查询字符串,本地图像和 S3 托管图像一切正常。

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

如果我尝试获取以下内容 url 我会收到 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?

ImageProcessor.Web.Services.LocalFileImageService 不是 ImageResizer, it's part of ImageProcessor 的一部分。

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