2011-10-20 84 views
3

如果我從我的web.config Aazure ServiceConfiguration.cscfg移動的配置設置, 我是否需要更改代碼移動配置設置ServiceConfiguration.cscfg

比如我我有在我的web.config以下提到的條目

<ConfigurationSettings> <Setting name="webConfigHostName" value="Test.AzureTest" /> </ConfigurationSettings>

要閱讀上面的條目,我用

string myHostName=MyEnvironmentWrapper.GetConfigurationSettingValue("webConfigHostName"); 

現在,我想我的web應用程序遷移到Azure的雲環境

所以我計劃上面的web.config條目移動到我的ServiceConfiguration.csfg 在此之後,我需要更改代碼,使我的應用程序可以直接從我的ServiceConfiguration.csfg讀 「webConfigHostName」

回答

8

恐怕(在過去,見下文)你這樣做:

if (RoleEnvironment.IsAvailable) 
{ 
    return RoleEnvironment.GetConfigurationSettingValue("mySetting"); 
} 
else 
{ 
    return ConfigurationManager.AppSettings["mySetting"].ToString(); 
    // or whatever your configuration system requires 
} 

這個herehere有一些很棒的帖子。

爲了使我們的應用程序不可知,我們最終編寫了自己的包裝器,因此在我們的代碼中我們使用了一個靜態的Configuration.GetValue()。一個快速的全球搜索和替換,我們走了。


編輯:今天,這是比較容易:請參閱CloudConfigurationManager的MSDN參考。

+0

這很好。我在GitHub上創建了一個使用Fluent接口來構造這些配置更改的項目。我會隨着時間的推移更新它以幫助AppSettings。 https://github.com/SyntaxC4/WindowsAzureConnectionStringResolver –

+3

現在在Azure SDK中支持(自2012年6月起):http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager – codingoutloud

+0

哦,真可愛!我已經修改了我的答案。謝謝。 –