设置必须采用" name = value"的形式。不知道该怎么做

时间:2016-04-18 15:37:23

标签: c# azure azure-storage

所以我正在解析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");

3 个答案:

答案 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程序集的引用来执行此操作。