«Сервер RPC недоступен» с использованием запроса WMI

У меня есть рабочая группа веб-серверов под управлением Server 2008 R2, в которой я пытаюсь управлять сценарием, который проверяет дисковое пространство всех из них. Я установил это несколько месяцев назад, когда настраивали серверы, и я считаю, что он работает нормально. Теперь я иду и проверяю, и появляется сообщение об ошибке «Сервер RPC недоступен». Сценарий представляет собой страницу C # ASP.NET, хотя я пробовал сопоставимые вызовы в PowerShell и выдает ту же ошибку. Скрипт отлично работает для доступа к информации на локальном компьютере, но не могу получить доступ к информации удаленного сервера.

Я провел последние несколько часов, копаясь во всем, что могу найти, но ничего не работает. Я установил разрешения для WMI (удаленный и локальный), DCOM (удаленный и локальный) и для всего диска компьютера, к которому я обращаюсь. Я использовал имя компьютера, IP-адрес, полное имя компьютера (xxx.echomountain.com) и пробовал многочисленные настройки олицетворения и аутентификации в объекте ConnectionOptions.

Я знаю, что имя пользователя и пароли, которые я использую, верны, поскольку Я могу получить доступ к каталогам сегментов одного из другого

Есть идеи, что еще я мог бы проверить, чтобы вызвать эту ошибку?

ConnectionOptions oConn = new ConnectionOptions();
    oConn.Impersonation = ImpersonationLevel.Impersonate;
    oConn.EnablePrivileges = true;
    oConn.Username = username;
    oConn.Password = password;
    //oConn.Authentication = AuthenticationLevel.PacketPrivacy;
    string strNameSpace = @"\\";

    if (srvname != "")
        strNameSpace += srvname + ".echomountain.com";
    else
        strNameSpace += ".";

    strNameSpace += @"\root\cimv2";

    ManagementScope oMs = new ManagementScope(strNameSpace, oConn);

    //get Fixed disk state
    ObjectQuery oQuery = new ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");

    //Execute the query
    ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);

    //Get the results
    ManagementObjectCollection oReturnCollection = oSearcher.Get();

    //loop through found drives and write out info
    double D_Freespace = 0;
    double D_Totalspace = 0;
    foreach (ManagementObject oReturn in oReturnCollection)
    {
        // Disk name
        //MessageBox.Show("Name : " + oReturn["Name"].ToString());
        // Free Space in bytes
        string strFreespace = oReturn["FreeSpace"].ToString();
        D_Freespace = D_Freespace + System.Convert.ToDouble(strFreespace);
        // Size in bytes
        string strTotalspace = oReturn["Size"].ToString();
        D_Totalspace = D_Totalspace + System.Convert.ToDouble(strTotalspace);
        boxSize = (D_Totalspace / GB).ToString("##.00");
        boxFree = (D_Freespace / GB).ToString("##.00");
        Response.Write(srvname + ":" + boxSize + ":" + boxFree);
    }

Ошибка сервера в приложении '/'.

Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)

Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.

Сведения об исключении: System.Runtime.InteropServices.COMException: сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)

Ошибка источника:

Строка 64: Строка 65: // Получаем результаты Строка 66: ManagementObjectCollection oReturnCollection = oSearcher.Get (); Строка 67: Строка 68: // перебрать найденные диски и записать информацию

Исходный файл: c: \ Web \ medelaimages.com \ iis \ tool \ boxinfoagent.aspx Строка: 66

Трассировка стека:

[COMException (0x800706ba): сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)] System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (код ошибки Int32, информация об ошибке IntPtr) +0 System.Management.ManagementScope.InitializeGuts (объект o) +674 System.Management.ManagementScope.Initialize () +347 System.Management.ManagementObjectSearcher.Initialize () +189 System.Management.ManagementObjectSearcher.Get () +54 ASP.tool_boxinfoagent_aspx.Page_Load (отправитель объекта, EventArgs e) в c: \ Web \ medelaimages.com \ iis \ tool \ boxinfoagent.aspx: 66 System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive () +71 System.Web.UI.Page.ProcessRequestMain (логическое includeStagesBeforeAsyncPoint, логическое includeStagesAfterAsyncPoint) +3048

Информация о версии: Microsoft .NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.1

12
задан Rahul Nikate 13 November 2015 в 10:51
поделиться