设置必须为“name = value”forms。 不知道该怎么做

所以我正在解析Azure存储帐户的连接字符串,当我到达使用连接字符串的应用程序页面时,编译器会捕获一个exception,指出“设置必须是”name = value“的forms。

这是否意味着我应该在我设置appSettings的app.config文件中更正一些内容? 如果是这样,您是否可以立即发现我的格式错误会导致此exception?

      

这是创建CloudStorage对象实例的代码:

 CloudStorageAccount storageaccount = CloudStorageAccount.Parse ("StorageConnectionString"); CloudTableClient tableClient = storageaccount.CreateCloudTableClient (); CloudTable austinBowlingAthletes = tableClient.GetTableReference ("austinBowlingAthletesTable"); 

添加对System.Configuration.dll的引用并using System.Configuration;添加using System.Configuration; 在文件中。

然后将第一行更改为:

 CloudStorageAccount storageaccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); 

您需要获取值,而不仅仅是将密钥传递给Parse。

您的"StorageConnectionString"应采用以下格式:

DefaultEndpointsProtocol=[http|https];AccountName=;AccountKey=' ,如此处所述

另外,使用CloudConfigurationManager获取连接字符串:

string connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");

这样可以在应用程序在本地运行时使用app.config / web.config或在云中运行时使用azure访问应用程序设置。 看到这个链接

然后,您应该能够解析连接字符串,并且无需在开发和生产环境之间修改app.config / web.config设置。

您遇到此错误的原因是因为您要求CloudStorageAccount.Parse方法逐字解析"StorageConnectionString"字符串,而不是存储在app.config文件中的此设置的值。 您需要做的是从配置文件中读取此设置的值。 例如,在控制台应用程序中,我会做这样的事情:

  var appSettingsReader = new AppSettingsReader(); var connectionString = (string) appSettingsReader.GetValue("StorageConnectionString", typeof(string)); CloudStorageAccount storageaccount = CloudStorageAccount.Parse(connectionString); 

我必须为System.Configuration程序集添加一个引用来执行此操作。