ImageResizer.AzureReader2无法使用QUERYSTRING(Azure Web App)

时间:2015-05-20 21:53:19

标签: asp.net azure imageresizer

我正在尝试迁移到Azure,这是一个成功运行ImageResizer的ASP.NET应用。我将〜/ Photos文件加载到blockblobs上,并安装了AzureReader2插件。

然后,错误会阻止加载应用程序:

Unable to load Microsoft.WindowsAzure.CloudConfigurationManager from assembly  
Microsoft.WindowsAzure.Configuration, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35.

我下载了AzureReader2源代码并重新编译它,用CloudStorageAccount.Parse()替换丢失的CloudConfigurationManager(),这似乎解决了这个问题。

我用修改后的插件替换了对3.4.3 AzureReader2插件的引用,并运行了应用程序。

现在AzureReader2似乎拦截了图像请求并重定向到指定的端点,因为没有指定QUERYSTRING,所以它很长。

如果我指定任何查询字符串参数,我会得到404-Not Found。

http://localhost:1905/Photos/2025/15/29/qcu0tks1.jpg?width=100

如果我省略了查询字符串,它会重定向到Azure存储网址并显示图像:         http://127.0.0.1:10000/devstoreaccount1/pracasar/Photos/2025/15/29/qcu0tks1.jpg

如果我将查询字符串参数应用到另一个文件夹(例如〜/ images / logo.jpg),它就可以正常工作。所以这似乎是AzureReader2的一个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

至于404-Not Found错误,问题是如何指定容器名称。

我正在将容器名称添加到端点。这导致了描述的不稳定行为(指定查询字符串时未找到404)。

**Generates: 404-Not Found when querystring is specified**
<add name="AzureReader2"
       endpoint="http://mystorage.blob.core.windows.net/mycontainer" prefix="~/Photos" /> 

虽然生成的URL有效,但是当指定了查询字符串时,它会生成404-Not Found。

应将容器名称添加为资源名称的前缀。