1

Microsoft.WindowsAzure.ServiceRuntimeWeb/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イベント内で実行すると正常に実行されますが、このコードを別の 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 ロールの外でこのライブラリを参照することが事実上可能かどうか、確認していただけますか? もしそうなら、私が間違っているかもしれないことについてアドバイスを提供してください。

4

1 に答える 1