如果我创建一个控制台应用程序并且只想获取实例名称,我会尝试通过
获取它RoleEnvironment.CurrentRoleInstance.Id
但是这已经失败并带有外部异常:
角色发现数据不可用
和内部异常:
的类型初始值设定项 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment'扔了一个 例外。 - 无法加载文件或程序集'msshrtmi, Version = 2.4.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或 其中一个依赖项。系统找不到指定的文件。
是否有其他方式可以通过编程方式获取Azure实例名称,或者我的控制台应用程序是否需要一些特殊权限才能访问RoleEnvironment?
答案 0 :(得分:0)
您尝试访问在Azure环境/ AppFabrix中未运行时可用的RoleEnvironment功能。我建议您使用RoleEnvironment.IsAvailable成员检查您是否正在运行Azure环境。
稍微更健壮的方法是将您的实例ID包装到方法中,例如......
// Handcoded
private string ApplicationInstanceId(){
return RoleEnvironment.IsAvailable ?
RoleEnvironment.CurrentRoleInstance.Id :
"RunningLocally!";
}