none
El servidor RPC no está disponible, error 0X800706BA

    Pregunta

  •  

    Hola a todos,

     

    He realizado una pequeña aplicación que comprueba la capacidad de discos en el servidor.

    El caso es que lo he probado en una de las oficinas de la empresa y funciona sin ningún problema, pero al instalarlo en otra oficina (otra red) me lanza el siguiente error:

     

    El servidor RPC no está disponible, error 0X800706BA

     

    El caso es que ese servidio está iniciado y no tengo ningún antivirus ni firewall en funcionamiento.

     

    No se que puede ser...

     

    Gracias por la ayuda.

     

    Javi.

    martes, 05 de febrero de 2008 18:32

Respuestas

  • puede ser problem a de privilegios...

     

    intenta ejecutando la app desde un usuario con privilegios mas elevados.. por probar dale con un administrador...

     

    martes, 05 de febrero de 2008 20:56

Todas las respuestas

  • abre una consola de comandos y dale

     

    net start RPC

     

    espera a que acabe, si despues de eso no funciona, entra por

     

    inicio , ejecutar y escribe

     

    services.msc

     

    en ese panel busca el servicio de llamada a procediemiento remoto (Remote procedure call  - RPC) y asegurate que este como inicio automatico, subelo de nuevo e intenta de nuevo.

     

    Si despues de eso no funciona... ya puede ser un daño en el OS... parchalo... o tambien podria ser un virus...

    martes, 05 de febrero de 2008 18:52
  • Gracias Juan Carlos por la respuesta:

    En línea de comandos, escribiendo net start RPC

    no reconoce el servicio.

     

    En el panel de servicios me dice que está inicidado, pero no puedo resetearlo, todas esas opciones están deshabilitadas para pararlo, iniciarlo, etc...aunque ya está iniciado...

     

    No me funciona ni en el servidor de la oficina ni en mi propio pc de casa, únicamente en una de las oficinas gracias.

     

    Gracias por la ayuda.

     

    martes, 05 de febrero de 2008 19:27
  • puede ser problem a de privilegios...

     

    intenta ejecutando la app desde un usuario con privilegios mas elevados.. por probar dale con un administrador...

     

    martes, 05 de febrero de 2008 20:56
  • Gracias de nuevo...

    En ambos casos entro tanto al servidor de la oficina, como a mi pc de casa como Administrador.

     

    He probado a reiniciarlos pera nada...en el servidor de la oficina funciona perfectamente tanto SQL Server 2005, como el servidor de páginas web...Lo que me extraña es que en el servidor de una oficina funcione, mientras que en otra no...

     

    Gracias.

     

    Javi.

    martes, 05 de febrero de 2008 21:50
  • muy raro...

    tienen instalado el mismo servicepack y esas cosas?

     

    martes, 05 de febrero de 2008 21:53
  • En ambos servidores sp1 de windows server 2003, y en el de casa el sp2 de xp...

     

    Gracias por todas las molestias y el interes.

    martes, 05 de febrero de 2008 21:57
  • 1- hasle debug en la maquina que no funciona a ver que te arroja-

    2- lleva el codigo de error y consukta en los foros de technet. http://forums.microsoft.com/technet-es/default.aspx?siteid=30

    martes, 05 de febrero de 2008 22:06
  • ¿A qué te refieres con un debug?

     

    El mensaje de error que da mi aplicación lo obtuve controlando las excepciones y mostrando el mensaje.

     

    Graicas de verdad.

     

    Javi.

    martes, 05 de febrero de 2008 22:12
  • Hola de nuevo,

     

    Dejo aqui el código, la excepción salta en la última linea.

    Dim oConn As Management.ConnectionOptions = New Management.ConnectionOptions

     

     

    Code Snippet

    oConn.Username = My.Settings.usuario

    oConn.Password = My.Settings.pwd

     

    oConn.EnablePrivileges = True

    oConn.Impersonation = ImpersonationLevel.Impersonate

    oConn.Authentication = System.Management.AuthenticationLevel.Packet

    Dim strNameSpace As String

    Dim oMs As System.Management.ManagementScope

    Try

    strNameSpace = "\\" & My.Settings.servidor & "\root\cimv2"

    oMs = New System.Management.ManagementScope(strNameSpace, oConn)

     

     

    Gracias por la ayuda.

     

    Javi.

    miércoles, 06 de febrero de 2008 18:14
  • creo que esto esta mal:

     

    Code Snippet

    strNameSpace = "\\" & My.Settings.servidor & "\root\cimv2"

     

     

    porque \r es el caracter de escape de retorno  de carro... (al menos en C#)

     

    haslo asi

     

    Code Snippet

    strNameSpace = @"\\" & My.Settings.servidor & @"\root\cimv2"

     

     

    miércoles, 06 de febrero de 2008 19:17
  • Hola Juan Carlos,

    He probado como me dices pero da error en las "@", supongo que en visual basic será diferente.

     

    Muchas gracias, seguiré con mis prueba y os contaré mis "avances" si es lo que hay.

     

    Javi.

    miércoles, 06 de febrero de 2008 19:48
  • Hola, sigo sin conseguirlo...he probado con este otro código, pero no resuelvo nada, lo curioso es que esto funciona contra los servidores y en local, pero no con ningún otro pc de la misma red...

     

    Code Snippet

    ' Variable para la colección

    Dim c_disco As Object

    Dim o_Wmi As Object 'Para acceder a wmi

    ' Variable para hacer referencia a la unidad de red

    Dim Unidad_red As Object

    ' Dim item As ListItem ' para el listview

    o_Wmi = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & My.Settings.servidor & "\root\cimv2")

     

     

    Que locura...

     

    Gracias.

     

    Javi.

    viernes, 08 de febrero de 2008 12:59
  • si quieres explica mejor que debe hacer tu aplicacion y enviame el codigo completo a mi email...

     

    viernes, 08 de febrero de 2008 19:47
  • Hola Juan Carlos,

     

    Te he enviado el correo con el proyecto completo comprimido.

     

    La aplicación simplemente comprueba la capacidad de un pc que le índique, si esta capacidad es inferior a una determinada cantidad avisa al usuario.

     

    Se trata de una aplicación para que los usuarios que realizan copias de seguridad sobre discos reciban un aviso cuando no tengan más espacio y así puedan sustituirlo.

     

    Algo sencillo, pero que vaya guerra me está dando.

     

    Dejo aqui el código completo de la función que se encarga de hacer esa comprobación:

     

    Code Snippet

    Private Sub comprobar()

    ' On Error Resume Next

    Try

    ' Variable para la colección

    Dim c_disco As Object

    Dim o_Wmi As Object 'Para acceder a wmi

    ' Variable para hacer referencia a la unidad de red

    Dim Unidad_red As Object

     

    o_Wmi = GetObject("winmgmts:" _

    & "\\" & My.Settings.servidor & "\root\cimv2")

     

    c_disco = o_Wmi.ExecQuery("Select * from Win32_LogicalDisk")

    ' Recorre las unidades de red en la colección ..si es que hay

    Dim cadenaTotal As String = ""

    Dim cadena As String = ""

    Dim avisar As Boolean = False

    Dim libre As Double = 0

    For Each Unidad_red In c_disco

    If IsNumeric(Unidad_red.FreeSpace) Then

    libre = CDbl(Unidad_red.FreeSpace) / 1024

    Else

    libre = 0

    End If

     

    cadena = "Unidad: " & Unidad_red.Name & " - Espacio Libre: " & libre.ToString & " Mb." & Chr(13) & Chr(10)

    cadenaTotal = cadenaTotal & cadena '& " - Total espacio: " & FormatNumber(oReturn("Size") / 1000) & Chr(10) & Chr(13) & Chr(10) & Chr(13)

    If libre < CDbl(My.Settings.filtro) And Unidad_red.Name = My.Settings.Unidad & ":" Then

    avisar = True

    End If

    Next

    If avisar = True Then

    NotifyIcon1.BalloonTipText = cadenaTotal

    'NotifyIcon1.= False

    NotifyIcon1.ShowBalloonTip(1800000)

    txtPropiedades.Text = cadenaTotal

    Timer1.Stop()

    Else

    NotifyIcon1.BalloonTipText = "No hay ningún disco duro con menos de " & My.Settings.filtro & " Mb."

    NotifyIcon1.ShowBalloonTip(10000)

    txtPropiedades.Text = "No hay ningún disco duro con menos de " & My.Settings.filtro & " Mb."

    If Not _comprobado Then

    Timer1.Start()

    End If

    End If

    Catch ex As Exception

    MsgBox("Imposible realizar conexión, los datos de conexión no son válidos. " & ex.Message, MsgBoxStyle.Critical, "Conexión no realizada.")

    txtPropiedades.Text = ex.Message

    Timer1.Stop()

    Me.Visible = True

    Me.WindowState = FormWindowState.Normal

    Me.ShowInTaskbar = True

    End Try

    End Sub

     

     

     

    Gracias.

     

    Javi.

    sábado, 09 de febrero de 2008 16:47
  •  

    jejeje, ok lo revisare... la risa es porque no tengo ni se vb.net...

     

    pero lo estoy instalando y veremos.

    domingo, 10 de febrero de 2008 1:29
  • jajaja, oye no te preocupes tengo previsto intentar cambiar algún permiso en los usuarios o mirar algo con los dominios, en cuanto me entere de algo lo colgaré por aqui ( si es que me entero ) de momento tu ayuda me ha sido más que útil.

     

    Gracias.

    domingo, 10 de febrero de 2008 1:33
  • Aunque ya es un poco tarde para dar soluciones, mas vale tarde que nunca.

    En fin a mi me acaba de pasar lo mismo, y el problema que tenia es que en el controlador primario habia puesto como DNS primario la ip de la puerta de enlace por equivocación

    Saludos!!
    sábado, 06 de septiembre de 2008 20:17