所以我正在解析Azure存储帐户的连接字符串,当我到达使用连接字符串的应用程序页面时,编译器会捕获一个异常,说明"设置必须是form" name = value"。
这是否意味着我应该在我设置appSettings的app.config文件中更正一些内容?如果是这样,您是否可以立即发现我的格式有问题会导致此异常?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey" />
<appSettings>
</configuration>
以下是创建CloudStorage对象实例的代码:
CloudStorageAccount storageaccount = CloudStorageAccount.Parse ("StorageConnectionString");
CloudTableClient tableClient = storageaccount.CreateCloudTableClient ();
CloudTable austinBowlingAthletes = tableClient.GetTableReference ("austinBowlingAthletesTable");
答案 0 :(得分:5)
添加对System.Configuration.dll的引用,并在文件中添加using System.Configuration;
。
然后将第一行更改为:
CloudStorageAccount storageaccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
您需要获取值,而不仅仅是将密钥传递给Parse。
答案 1 :(得分:1)
您的var result = "#"
while(result.length <=7 ){
console.log(result);
result = result + "#";
}
格式应为:
"StorageConnectionString"
,如here
另外,使用DefaultEndpointsProtocol=[http|https];AccountName=<YourAccountName>;AccountKey=<YourAccountKey>'
获取连接字符串:
CloudConfigurationManager
这样可以在您的应用在本地运行时使用app.config / web.config或在云中运行时使用azure访问应用设置。见this link
然后你应该能够解析连接字符串,并且无需在开发和开发之间修改app.config / web.config设置。生产环境。
答案 2 :(得分:0)
您遇到此错误的原因是因为您要求CloudStorageAccount.Parse
方法逐字解析"StorageConnectionString"
字符串而不是存储在app.config文件中的此设置的值。您需要做的是从配置文件中读取此设置的值。例如,在控制台应用程序中,我会做这样的事情:
var appSettingsReader = new AppSettingsReader();
var connectionString = (string) appSettingsReader.GetValue("StorageConnectionString", typeof(string));
CloudStorageAccount storageaccount = CloudStorageAccount.Parse(connectionString);
我必须添加System.Configuration
程序集的引用来执行此操作。