带有AzureReader2的ImageResizer为所有请求返回404

时间:2016-01-09 19:08:53

标签: umbraco imageresizer

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

以下是情况摘要:

  • ImageResizer 3 (由于Newtonsoft依赖项与Umbraco 7冲突,无法升级到4)
  • /resizer.debug 工作正常,并且不会报告任何错误
  • Microsoft.WindowsAzure.Configuration 2.0.0.0
  • Microsoft.WindowsAzure.Storage 4.3.0.0

使用以下网址直接请求blob正常工作:

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

但是,以下网址工作:

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文件夹中:

  • ImageResizer.dll
  • ImageResizer.Plugins.AzureReader2.dll
  • ImageResizer.Plugins.DiskCache.dll
  • ImageResizer.Storage.dll

我还删除了&#34; MvcRoutingShim&#34;来自config的插件,因为它是默认安装的。

现在一切都在Umbraco 7网站上使用ImageResizer 4正常工作!

1 个答案:

答案 0 :(得分:2)

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

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

旧版本的ImageResizer也(错误地)为任何FileNotFoundException返回404 ...如果缺少程序集(如azure SDK),则会发生这种情况。

预编译也会破坏azurereader2 ..

相关: Resizing an image using AzureReader2 results in 404

AzureReader2 not working with querystring

如果以上建议都不起作用,我建议您使用调试器逐步查看源代码,以了解图像提供程序无法正常工作的原因。如果可能的话,首先升级到v4。