C# 将Azure Blob连接到Azure网站

C# 将Azure Blob连接到Azure网站,c#,asp.net,azure,azure-storage-blobs,azure-web-app-service,C#,Asp.net,Azure,Azure Storage Blobs,Azure Web App Service,我正在尝试将Azure网站连接到Azure blob(我打算在容器中托管一些文件,然后从我的网站抓取它们) 我从本教程开始: 我部署了我的网站,然后开始学习本教程: 因为我使用的是Azure网站,所以我将以下代码添加到了我的web.config文件(在WebApplication1项目下)。视图文件夹下还有一个web.config文件,但我没有修改它 我还尝试直接将StorageConnectionString(带有我的帐户名和密钥)的值放在下面的语句中,而不是引用它: CloudSto

我正在尝试将Azure网站连接到Azure blob(我打算在容器中托管一些文件,然后从我的网站抓取它们)

我从本教程开始:

我部署了我的网站,然后开始学习本教程:

因为我使用的是Azure网站,所以我将以下代码添加到了我的web.config文件(在WebApplication1项目下)。视图文件夹下还有一个web.config文件,但我没有修改它


我还尝试直接将
StorageConnectionString
(带有我的帐户名和密钥)的值放在下面的语句中,而不是引用它:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key"].ConnectionString);
我仍然会犯同样的错误。我似乎在网上找不到任何东西。有什么想法吗


谢谢

您的代码中有一个基本错误

首先设置应用程序设置:

 <configuration>
    <appSettings>
       <add key="StorageConnectionString" 
            value="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" />
    </appSettings>
 </configuration>
这根本行不通。设置AppSetting时,需要阅读AppSetting。设置ConnectionString时,需要读取连接字符串

因此,解决方案是保持web.config不变,并将获取存储帐户的行更改为:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
或者保留连接字符串的行,但将web.config更改为:

 <configuration>
    <connectionStrings>
       <add name="StorageConnectionString" 
            connectionString="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" providerName="System.Data.SqlClient" />
    </connectionStrings>
 </configuration>


当然,您必须为云存储帐户和存储帐户密钥输入您的真实值(
帐户名
根本不起作用)。

这是来自Azure的更糟糕的文档,文章确实告诉您创建应用程序设置,然后代码告诉您检索连接字符串

另一种修复方法是将详细信息存储为ConnectionString,并保持代码不变:

<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=your-account;AccountKey=your-key" />

如果您提供InnerException,可能会有所帮助,因为它可以提供一些有用的信息。有几件事需要尝试…首先,您的第二个示例尝试搜索名为“DefaultEndpointsProtocol…”的ConnectionString,而这只是一个值。其次,只需直接添加存储帐户字符串,即CloudStorageAccount storageAccount=CloudStorageAccount.Parse(“DefaultEndpointsProtocol=https;AccountName=account name;AccountKey=account key”]);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
 <configuration>
    <connectionStrings>
       <add name="StorageConnectionString" 
            connectionString="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" providerName="System.Data.SqlClient" />
    </connectionStrings>
 </configuration>
<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=your-account;AccountKey=your-key" />