Ord*_*r66 10 c# asp.net azure azure-storage-blobs azure-web-sites
我正在尝试将Azure网站连接到Azure blob(我打算在容器中托管一些文件,然后从我的网站上获取它们).
我从这个教程开始:http: //azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-get-started/
我部署了我的网站,然后开始学习本教程:http: //azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/#setup-connection-string
由于我使用的是Azure网站,因此我将以下代码添加到了我的web.config文件中(在WebApplication1项目下).Views文件夹下还有一个web.config文件,但我没有修改它.
<configuration>
<appSettings>
<add key="StorageConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我按照教程中的所有步骤安装了相关的NuGet包,然后将这些命名空间包含在我的Controllers/HomeController.cs文件中:
using System.Configuration;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
Run Code Online (Sandbox Code Playgroud)
然后我在ActionResult Index()方法中添加了以下语句(默认情况下运行).
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
当我尝试运行解决方案时,我现在收到此错误:
我也尝试直接输入StorageConnectionString(使用我的帐户名和密钥)的值,而不是在以下语句中引用它:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
我仍然得到同样的错误.我似乎无法在互联网上找到任何东西.有任何想法吗?
谢谢!
ast*_*kov 25
您的代码中存在根本性错误.
首先设置AppSetting:
<configuration>
<appSettings>
<add key="StorageConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=account- name;AccountKey=account-key" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
然后你尝试获取连接字符串:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
这根本行不通.设置AppSetting时,您需要阅读AppSetting.设置ConnectionString时,需要读取连接字符串.
因此,解决方案只是将web.config保持原样,并将存储帐户所在的行更改为:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
Run Code Online (Sandbox Code Playgroud)
或者保留连接字符串的行,但将web.config更改为:
<configuration>
<connectionStrings>
<add name="StorageConnectionString"
connectionString="DefaultEndpointsProtocol=https;AccountName=account- name;AccountKey=account-key" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当然,您必须为云存储帐户和存储帐户密钥设置您的真实值(account-name将永远不会工作).