将 ImageResizer 从 3.4.3 升级到 4.0 似乎破坏了 S3Reader

Upgrading ImageResizer from 3.4.3 to 4.0 seems to break S3Reader

我们一直在评估 ImageResizer,到目前为止一切顺利。我们的主要用例之一是已上传到 S3 的图像,我们想在 4.0 中测试重写的 S3 插件。来自安装了 3.4.3 的应用:

重建应用程序后,一切正常(在我的工作站上测试,使用 VS2012 和 IIS Express 8)。我可以通过 RemoteReader 插件获取图像。我们编写的一个简单的 URL-rewriting 插件似乎工作正常。但是我无法让 S3Reader2 插件产生除 404 之外的任何结果。我摆弄了一些插件设置,并尝试了各种好的和坏的组合 URLs 但没有成功。

这是a Gist with the diagnostics output

升级到 4.0 是否需要对配置进行一些更改?它无法在本地工作 运行 的某些原因?我应该使用更稳定的 4.0 版本吗?

根据诊断页面,您似乎没有安装静态文件处理程序或模块。由于您使用的是 DiskCache,ImageResizer 将磁盘缓存文件的服务委托给配置的任何静态文件服务器,以便您可以获得最佳性能并支持所有深奥的 HTTP 命令。

添加静态文件处理程序应该可以解决这个问题。

  <system.webServer>
    <handlers>
      <add name="AspNetStaticFileHandler" path="*" verb="*" type="System.Web.StaticFileHandler" />
    </handlers>
  </system.webServer>

您还应该验证是否安装了本机静态文件模块(理论上它更快)。

https://support.microsoft.com/en-us/kb/2196177?wa=wsignin1.0

这个问题似乎在使用更新的 4.0.0-prerelease0877 packages from NuGet. I speculate that we might have been seeing issue #139 时得到解决,但我们可能永远无法确定。