ImageResizer with AzureReader2 returns 404 所有请求
ImageResizer with AzureReader2 returns 404 for all requests
我很难让 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 工作正常,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 文件夹中:
- ImageResizer.dll
- ImageResizer.Plugins.AzureReader2.dll
- ImageResizer.Plugins.DiskCache.dll
- ImageResizer.Storage.dll
我还从配置中删除了 "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。
我很难让 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 工作正常,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 文件夹中:
- ImageResizer.dll
- ImageResizer.Plugins.AzureReader2.dll
- ImageResizer.Plugins.DiskCache.dll
- ImageResizer.Storage.dll
我还从配置中删除了 "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。