在Web或Worker角色之外引用Microsoft.WindowsAzure.ServiceRuntime
本文关键字:引用 Microsoft WindowsAzure ServiceRuntime Web Worker 角色 | 更新日期: 2023-09-27 18:28:31
我有一个场景,需要能够在Web/Worker角色之外使用Microsoft.WindowsAzure.ServiceRuntime
。
具体来说,我有以下代码
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
事件内运行时,此代码成功执行,但当我尝试在单独的exe中执行此代码时,该exe是通过Azure启动任务触发的
<Startup>
<Task commandLine="StartupMagic.exe" taskType="simple" executionContext="elevated" />
</Startup>
我收到以下错误
The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.
请有人确认是否可以在Web或Worker角色之外引用此库?如果是的话,就我可能做错了什么提供任何建议?
检查innerException导致显示以下消息:
"混合模式程序集是根据运行时的v2.0.50727版本构建的,如果没有其他配置信息,就无法在4.0运行时中加载。"
混合模式汇编中描述的解决方案是针对解决此问题的运行时v2.0.50727版本构建的。