什麼是確定我的Web應用程序代碼是在Azure的Web角色(或仿真器)運行的最佳方式?確定是否web應用程序代碼在Azure中webrole運行或不
我需要配置一個依賴注入容器,不想承擔任何Azure的具體組件的依賴,除非我在Azure中快到。
兩個答案this question需要引用天青我想這阻止了我的預置場景的特定組件。
更新:我期待在運行時環境的東西,我可以從我的Web應用程序代碼查詢。
什麼是確定我的Web應用程序代碼是在Azure的Web角色(或仿真器)運行的最佳方式?確定是否web應用程序代碼在Azure中webrole運行或不
我需要配置一個依賴注入容器,不想承擔任何Azure的具體組件的依賴,除非我在Azure中快到。
兩個答案this question需要引用天青我想這阻止了我的預置場景的特定組件。
更新:我期待在運行時環境的東西,我可以從我的Web應用程序代碼查詢。
您可以通過web.config
/app.config
/ServiceConfiguration.cscfg
設置爲只在您想要的特定環境中設置。
添加參數,例如:
<Setting name="PaaS" value="true" />
然後,在應用程序啓動時,獲得的價值:
public bool IsPaaS
{
get
{
var res = false;
var val = CloudConfigurationManager.GetSetting("PaaS") ?? "false";
Boolean.TryParse(val, out res);
return res;
}
}
CloudConfigurationManager.GetSetting
將回落,如果沒有cscfg
設置存在,並檢查web.config
和/或app.config
。
在本地IIS下運行以獲取您正在查找的行爲時,在WebRole
中設置此項,但不在web.config
中。
您可以設置應用程序設置通過門戶網站(或ARM模板)您的Web應用程序,然後檢查你的代碼中它的價值。
App settings through the Azure Portal
var isPaaSSetting = Environment.GetEnvironmentVariable("IS_PAAS");
var isPaaS = !string.IsNullOrEmpty(isPaaSSetting) && isPaaSSetting.ToUpper() == "TRUE";
if (isPaaS) {...}
添加只會出現Azure的部署編譯符號,然後用'#如果AZURE'在你的依賴配置。 – haim770
我寧願不必爲內部部署和Azure生成單獨的程序集。 – MvdD
查看http://stackoverflow.com/questions/25678419/how-to-check-if-code-is-running-on-azure-websites/25695126#25695126 –