ImageResizer with AzureReader2 returns 404 所有请求

ImageResizer with AzureReader2 returns 404 for all requests

我很难让 ImageResizer 的 AzureReader2 插件正常工作。基本上,所有请求都会产生 404 个。

这里总结一下情况:

直接请求 blob 工作正常,URL 如:

http://ACCOUNTNAME.blob.core.windows.net/media/1004/some-image.jpg

但是,以下 URL 有效:

http://localhost/azure/media/1004/some-image.jpg

使用 ImageResizer 命令附加查询字符串会产生相同的结果。

配置如下:

<resizer>
   <diagnostics enableFor="Localhost" />
   <plugins>
     <add name="MvcRoutingShim" />
     <add name="AzureReader2" prefix="~/azure/" endpoint="http://ACCOUNTNAME.blob.core.windows.net/" connectionString="DefaultEndpointsProtocol=http;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY" />
     <add name="DiskCache" />
   </plugins>
   <diskcache dir="~/App_Data/imageresizer" />
</resizer>

我有点迷茫,非常感谢任何帮助!谢谢!

编辑: 根据 Nathanael 的建议,我用 Newtonsoft 6 构建了 ImageResizer 4,并将以下程序集放在 bin 文件夹中:

我还从配置中删除了 "MvcRoutingShim" 插件,因为它是默认安装的。

现在在 Umbraco 7 站点上使用 ImageResizer 4 一切正常!

我的第一个建议是在 Newtonsoft.Json 上使用程序集绑定重定向,以便您可以升级到 ImageResizer 4。Azure 经常对其 API 进行重大更改,而 ImageResizer 3 不再跟踪这些更改。

如果您愿意从源代码下载和重建 ImageResizer,ImageResizer 4 也可以与旧版本的 Newtonsoft 一起使用。

旧版本的 ImageResizer 也(错误地)return 任何 FileNotFoundException 的 404...如果程序集(如 azure SDK)丢失,则可能发生。

预编译也会破坏 azurereader2..

相关: Resizing an image using AzureReader2 results in 404

AzureReader2 not working with querystring

如果上述 none 条建议可行,我会建议使用调试器单步调试源代码,以发现图像提供程序不起作用的原因。如果可能,首先升级到 v4。