C# ошибка Generic failure при TakeOffline / BringOnline ресурса кластера

251
16 марта 2017, 19:32

При попытке выполнить TakeOffline или BringOnline у ресурса кластера получаю следующую ошибку:

System.Management.ManagementException: Generic failure 
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)

При этом ресурс успешно останавливается или запускается.

ClusterManager

public class ClusterManager
{
    private readonly string ClusterName;
    private readonly string ClusterNamespace;
    private ManagementScope Scope;
    private readonly ConnectionOptions Options;
    public ClusterManager(string clusterName, string clusterNameSpace, string user, string password)
    {
        ClusterName = clusterName;
        ClusterNamespace = clusterNameSpace;
        EnvironmentManager env = EnvironmentManager.Instance();
        Options = new ConnectionOptions
        {
            Authentication = AuthenticationLevel.PacketPrivacy,
            Username = env.UserName,
            Password = env.Password
        };
    }
    public void Connect()
    {
        Scope = new ManagementScope($@"\\{ClusterName}\root\{ClusterNamespace}", Options);
        Scope.Connect();
    }
    public ManagementObject GetResource(string name)
    {
        string wmiClassName = "MSCluster_Resource";
        ManagementClass managementClass = new ManagementClass(Scope, new ManagementPath(wmiClassName), null);
        managementClass.Get();
        ManagementObjectCollection objectCollection = managementClass.GetInstances();
        foreach (ManagementBaseObject obj in objectCollection)
        {
            ManagementObject resource = (ManagementObject)obj;
            if (resource["Name"].ToString() == name)
            {
                return resource;
            }
        }
        return null;
    }
    public List<ManagementObject> GetClusterNodes()
    {
        List<ManagementObject> list = new List<ManagementObject>();
        string wmiClassName = "MSCluster_Node";
        ManagementClass managementClass = new ManagementClass(Scope, new ManagementPath(wmiClassName), null);
        managementClass.Get();
        ManagementObjectCollection objectCollection = managementClass.GetInstances();
        foreach (ManagementBaseObject obj in objectCollection)
        {
            list.Add((ManagementObject)obj);
        }
        return list;
    }
    public void TakeOffline(ManagementObject resource)
    {
        try
        {
            resource.InvokeMethod("Takeoffline", null, null);
        }
        catch (Exception ex)
        {
            // ошибка здесь
            LogManager.Error(ex.ToString());
        }
    }
    public void BringOnline(ManagementObject resource)
    {
        try
        {
            resource.InvokeMethod("Bringonline", null, null);
        }
        catch (Exception ex)
        {
            // ошибка здесь
            LogManager.Error(ex.ToString());
        }
    }
}
READ ALSO
Запись int в массив byte[] (NET3.5)

Запись int в массив byte[] (NET3.5)

Как и при помощи какого метода можно записать целочисленное int в byte[]

207
Идентификатор врага на миникарте

Идентификатор врага на миникарте

Создал мини карту, столкнулся с проблемой такого рода: Когда герой на земле то размер идентификатора врага нормальный, Но мой герой летает...

205
ASP.NET &amp; CS &amp; Visual Studio 2010 - файл не реагирует на изменения

ASP.NET & CS & Visual Studio 2010 - файл не реагирует на изменения

Есть файл ASPX и соответствующий ему файл ASPXCS (CodeBehind="Filename

223
Проблема с наследованием интерфейсов

Проблема с наследованием интерфейсов

Почему при компиляции этого:

272