我有一个场景,我需要能够使用Microsoft.WindowsAzure.ServiceRuntime
Web/Worker 角色的外部。
具体来说,我有以下代码
public static RoleInstanceEndpoint ResolveIP()
{
if (RoleEnvironment.IsAvailable)
{
RoleInstance instance = RoleEnvironment.CurrentRoleInstance;
RoleInstance RelatedWCFInstance = RoleEnvironment.Roles["MyServiceRoleName"]
.Instances
.Where(o => o.UpdateDomain == instance.UpdateDomain)
.FirstOrDefault();
if (RelatedWCFInstance != null)
return RelatedWCFInstance.InstanceEndpoints.Where(o => o.Value.Protocol == "tcp").FirstOrDefault().Value;
}
return null;
}
此代码在事件中运行时成功执行,RoleEntryPoint.OnStart
但是当我尝试在通过 Azure 启动任务触发的单独 exe 中执行此代码时
<Startup>
<Task commandLine="StartupMagic.exe" taskType="simple" executionContext="elevated" />
</Startup>
我收到以下错误
The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.
有人可以确认是否可以在 Web 或 Worker 角色之外引用这个库?如果是这样,请就我可能做错的事情提供任何建议?