根據構建配置或服務配置,我想啓用或禁用啓動任務。我希望實現的是,我可以在我們的測試環境中禁用New Relic,但啓用舞臺和生產環境的啓動任務。那可能嗎?根據構建配置禁用/啓用Azure啓動任務
2
A
回答
3
NR_Jacob的答案啓發了我,謝謝!我發現你可以將角色的設置傳遞給批處理文件。因此,您需要添加如下設置: 然後爲每個服務配置指定true或false。
然後在ServiceDefinition.csdef中您添加和行:
<Task commandLine="newrelic.cmd" executionContext="elevated" taskType="simple">
<Environment>
<Variable name="DisableNewRelic">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='DisableNewRelic']/@value" />
</Variable>
</Environment>
</Task>
並在newrelic.cmd在頂部加入這些行:
IF "%DisableNewRelic%" == "true" (
ECHO Found setting to disable New Relic, exiting... >> "%RoleRoot%\nr.log" 2>&1
EXIT /B 0
)
@NR_Jacob:您可以添加行newrelic.cmd到你的代碼庫?不要傷害在cmd中有這樣的設置;-)否則,我將不得不每次更新nuget包時對newrelic.cmd進行修改。
1
這篇文章來自Microsoft已針對此類問題的good solution。總結:
的環境變量添加到文件ServiceDefinition.csdef中像下面這樣:
<Variable name="ComputeEmulatorRunning">
<RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
</Variable>
這將設置變量爲true,如果你是在模擬器中運行還是假如果不是。接下來,您將需要改變newrelic.cmd文件正是如此包住整個文件:
IF "%ComputeEmulatorRunning%" == "true" (
REM This task is running on the compute emulator. Nothing goes here since we want nothing to happen.
) ELSE (
REM This task is running on the cloud. Place the entirety of the newrelic.cmd file in here.
)
這仍然會調用CMD文件,但會阻止它做任何事情,除了在生產。
相關問題
- 1. Azure啓動任務掛起
- 2. Android:如何根據用戶設置啓動服務啓動?
- 3. 如何重用Azure啓動任務?
- 4. 未啓用Azure雲服務啓動任務
- 5. 根據文件啓動計劃任務
- 6. 從ServiceConfiguration文件配置Azure Web角色啓動任務
- 7. Azure:無法啓動雲服務運行vbs啓動任務
- 8. iPhone構建配置啓用功能
- 9. 啓用/禁用任務管理器
- 10. iOS多任務手勢 - 禁用/啓用
- 11. Azure的雲服務啓動的任務,需要重啓
- 12. iPhone Settings.bundle - 如何根據其他設置禁用/啓用設置?
- 13. Windows Azure啓動任務未觸發
- 14. 帶啓動任務的Windows Azure網站
- 15. Azure虛擬機啓動任務
- 16. 安裝sqlxml windows azure啓動任務
- 17. Azure雲服務項目 - 在調試時禁用自動啓動
- 18. Azure應用服務 - 啓動時彈出啓動應用程序
- 19. 使用log4j2配置建設者啓動
- 20. 啓用禁用SSIS發送郵件任務使用程序包配置
- 21. 根據適配器是否有項目來啓用/禁用EditText
- 22. 啓動mstsc.exe並啓用pekts00.rdp配置
- 23. 用C#啓用/禁用MSCONFIG啓動項
- 24. 根據條件設置JTable單元禁用或啓用?
- 25. 根據if語句動態啓用/禁用按鈕Ionic
- 26. Azure啓動任務,等待所有其他任務完成
- 27. 啓用多任務
- 28. Azure Appcmd啓動任務,爲所有站點設置preloadEnabled
- 29. cider-jack-in後啓動啓動任務
- 30. 爲什麼從Azure啓動任務中調用32位regsvr32?
謝謝,你的回答啓發了我,看到我的答案。也許你可以將chage包含到newrelic.cmd中以發佈nuget包的新版本? – Zenuka