设置必须为“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=
,如此处所述
另外,使用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
程序集添加一个引用来执行此操作。