2014-06-12 9 views
6

मैं एक ब्लॉब दुकान से कनेक्ट प्रोग्राम के:ServiceRuntime से "StorageConnectionString" हो रही है: विफल

string connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString"); 
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); 
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 
... 

मेरे App.Config सेटिंग्स हैं:

<configuration> 
    <appSettings> 
    <add key="StorageConnectionString" 
     value="DefaultEndpointsProtocol=http;AccountName=ACNAME;AccountKey=MYKEY==" /> 
    </appSettings> 
... 

कनेक्शन काम करता है। हालांकि मैं देख रहा हूँ संदेश StorageConnectionString "हो रही है" "ServiceRuntime से: विफल" मेरे स्थानीय इकाई परीक्षण पर:

enter image description here

इस संदेश के लिए कारण क्या है और मैं इसे कैसे ठीक कर सकते हैं?

उत्तर

10

मुझे एज़ूर टेबल संग्रहण के साथ एक ही समस्या थी, लेकिन सबकुछ काम करता है।

अपने web.config में जोड़ें:

<connectionStrings> 
    <add name="ConnectionTableAzure" connectionString="DefaultEndpointsProtocol=https;AccountName=[ACCOUNTNAMEHERE];AccountKey=[ACCOUNTKEYHERE];TableEndpoint=[ENDPOINTHERE]"/> 
</connectionStrings> 

बदलें:

storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("ConnectionTableAzure")); 

इस द्वारा:

storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["ConnectionTableAzure"].ConnectionString); 
1

पिछले समाधान काम करता है, लेकिन मैं और अधिक पर विस्तार करना चाहते हैं यह।

यह कोड को उत्पादन में चलाए जाने पर भी मूल्यों को प्रतिस्थापित करता है, हालांकि कभी-कभी आप वास्तव में एज़ूर को कॉन्फ़िगरेशन को संभालने देना चाहते हैं, जबकि डीबगिंग के दौरान आपकी आउटपुट विंडो पर नियंत्रण रखना।

मैंने निम्नलिखित कक्षा को इसके साथ मदद करने के लिए बनाया है।

public static class CloudConfigurationManagerExt 
{ 
    public static string GetSetting(string configurationValue) 
    { 
#if DEBUG 
     return System.Configuration.ConfigurationManager.AppSettings[configurationValue]; 
#else 
     return Microsoft.Azure.CloudConfigurationManager.GetSetting(configurationValue); 
#endif 
    } 
} 

तो मैं मेरा करने CouldConfigurationManager.GetSetting के लिए सभी कॉल बदल दिया है।

string connStr = CloudConfigurationManager.GetSetting("Microsoft.AzureBlobStorage.ConnectionString"); 

से करने के लिए

string connStr = CloudConfigurationManagerExt.GetSetting("Microsoft.AzureBlobStorage.ConnectionString"); 

और web.config, या app.config की appSetting भाग में सेटिंग जोड़ी के रूप में की जरूरत है।

web.config

<add key="Microsoft.AzureBlobStorage.ConnectionString" value="YourValueHere" /> 

आप देख सकते हैं। यदि आप डीबग मोड में चल रहे हैं, तो इसे ऐपसेटिंग से मूल्य मिल जाता है, अन्यथा क्लाउड कॉन्फ़िगरेशन मैनेजर के नियमित पथ का पालन करता है। गेटसेटिंग

संबंधित मुद्दे