我正在尝试迁移到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的一个问题。
有什么想法吗?
答案 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。
应将容器名称添加为资源名称的前缀。