c# – 我可以检测我的代码是否在Azure辅助角色中执行?

我有一些在 Winforms应用程序,Windows服务和现在Azure工作者角色中使用的共享程序集/项目.

如果我在Azure角色中运行,是否有任何方法可以在运行时检测到.

我已经找到了如何检测是否运行Azure模拟器:

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.IsEmulated

但这不符合我的要求.我也不想在共享程序集中添加对任何Azure程序集的引用.

理想情况下,我想要一些类似于我用来检测是否作为控制台与服务运行的东西:

System.Environment.UserInteractive

有什么能给我这个逻辑吗?

解决方法

您可以检查是否存在RoleRoot环境变量(至少对于云服务):

> http://blog.toddysm.com/2011/03/what-environment-variables-can-you-use-in-windows-azure.html
> MSDN:http://msdn.microsoft.com/en-us/library/windowsazure/gg557552.aspx

或者,为什么不简单地在配置中添加设置(AppSettings或服务配置):

<appSettings>
    ...
    <add key="AppEnvironment" value="Azure.CloudService|Azure.Website" />
  </appSettings>

然后,您只需检查设置是否存在特定值,即可查看您正在运行的位置.这也意味着在您的(自动)构建或部署过程中,您需要包含此设置(例如,这可以通过XDT实现).

相关文章

C#项目进行IIS部署过程中报错及其一般解决方案_c#iis执行语句...
微信扫码登录PC端网站应用的案例(C#)_c# 微信扫码登录
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...