C# 在Web或工作角色之外引用Microsoft.WindowsAzure.ServiceRuntime

C# 在Web或工作角色之外引用Microsoft.WindowsAzure.ServiceRuntime,c#,azure,dll,azure-role-environment,C#,Azure,Dll,Azure Role Environment,我有一个场景,需要能够在Web/工作者角色之外使用Microsoft.WindowsAzure.ServiceRuntime 具体来说,我有以下代码 public static RoleInstanceEndpoint ResolveIP() { if (RoleEnvironment.IsAvailable) { RoleInstance instance = RoleEnvironment.CurrentRoleInstance; RoleI

我有一个场景,需要能够在Web/工作者角色之外使用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>

我收到以下错误

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment的类型初始值设定项引发异常。


是否有人可以确认是否可以在Web或Worker角色之外引用此库?如果是这样,请提供有关我可能做错了什么的建议?

检查innerException会显示以下消息:

“混合模式程序集是根据运行时版本“v2.0.50727”生成的,如果没有其他配置信息,无法在4.0运行时中加载。”


中描述的解决方案解决了此问题。

检查innerException会显示以下消息:

“混合模式程序集是根据运行时版本“v2.0.50727”生成的,如果没有其他配置信息,无法在4.0运行时中加载。”


中描述的解决方案解决了这个问题。

什么是内部异常?好问题,给我一分钟时间重新部署和检查…做得好!“混合模式程序集是根据运行时版本‘v2.0.50727’构建的,如果没有其他配置信息,无法在4.0运行时中加载。”所以我认为,这只是一个这样做的问题?并将其与我的项目一起部署是的,引用的问题肯定会解决您的问题!InnerException是什么?好问题,给我一分钟时间重新部署和检查…做得好!“混合模式程序集是根据运行时版本‘v2.0.50727’构建的,如果没有其他配置信息,无法在4.0运行时中加载。”所以我认为,这只是一个这样做的问题?并将其与我的项目一起部署是的,引用的问题肯定会解决您的问题!