Foros del Web » Programando para Internet » ASPX (.net) »

Error al matar EXCEL.EXE

Estas en el tema de Error al matar EXCEL.EXE en el foro de ASPX (.net) en Foros del Web. Hola compañer@s, estoy intentando matar un proceso Excel desde C# con la siguiente función: private void killExcel () { string proceso_kill = "EXCEL"; foreach ( ...
  #1 (permalink)  
Antiguo 18/12/2008, 10:33
 
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 1
Error al matar EXCEL.EXE

Hola compañer@s, estoy intentando matar un proceso Excel desde C# con la siguiente función:



private void killExcel ()

{

string proceso_kill = "EXCEL";

foreach ( System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses() )

{

if ( p.ProcessName.ToString().ToUpper() == proceso_kill )

{

p.Kill();

}

}

}



Después de llamar a la función obtengo el siguiente mensaje de error:

Acceso denegado at System.Diagnostics.ProcessManager.OpenProcess(Int3 2 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access) at System.Diagnostics.Process.Kill() at ......



¿Sabeis a que se debe este error? Estoy trabajando con C#, ASP.NET, en el fichero Web.config estoy utilizando impersonate = true.

Gracias por vuestra atención.

Un saludo.
  #2 (permalink)  
Antiguo 19/12/2008, 01:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Error al matar EXCEL.EXE

Hola,

Yo para cerrar y eliminar los procesos de Excel o word hago lo siguiente:

Código:
sub rutinaExcel()
Dim oXL As Excel.Application
        Dim oWB As Excel.Workbook
        Dim oSheet As Excel.Worksheet

' Cogido........
'  ...................
'  ...................

        EiminaReferencias(oSheet)
        oXL.Workbooks(1).Close(False)
        EiminaReferencias(oWB)
        oXL.Quit()
        EiminaReferencias(oXL)
        System.GC.Collect()
        End If
        
End Sub

Shared Sub EiminaReferencias(ByRef Referencias As Object)
        Try
            'Bucle de eliminacion
            Do Until _
                      System.Runtime.InteropServices.Marshal.ReleaseComObject(Referencias) <= 0
            Loop
        Catch
        Finally
            Referencias = Nothing
        End Try
    End Sub
El código está en VB.net pero cambiando la sintaxis te vale para C#.

A mi me funciona correctamente. Al momento de ejecutarlo me desaparecen losp rocesos Excel del visor de tareas (también vale para Word).

Espero que te sirva.

Un saludo.
  #3 (permalink)  
Antiguo 19/12/2008, 04:21
 
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Error al matar EXCEL.EXE

Gracias por tu respuesta, el problema no esta en el código, el error está en que no tiene permisos sobre el proceso EXCEL.exe, por eso no puede hacer el kill.
¿Tienes alguna idea de como solucionarlo?
Un saludo.
  #4 (permalink)  
Antiguo 19/12/2008, 05:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Error al matar EXCEL.EXE

Hola de nuevo,

Ahora que recuerdo yo tuve un problema similar. El problema está en que intentas matar un proceso desde una aplicación web. Si en tu servidor web tienes configurado el acceso anónimo, por defecto, todos los procesos APS se ejecutan con el usuario IUSER_nombreDelServidor. y dicho usuario no tiene permisos para terminar procesos.

La solución que encontre es la siguiente:

En el servidor ejecutar
Inicio -> Ejecutar: dcomcnfg (Esto muestra la consola para configurar los servicios de componentes)

En el árbol de la izquierda ir a: Raíz de consola -> Servicios de componentes ->NombreDelSrv ->Configuración DCOM -> Aplicación de Microsoft Excel -> Propiedades -> Seguridad

Aquí puedes modificar los permisos sobre cada usuario.
  #5 (permalink)  
Antiguo 22/12/2008, 02:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Error al matar EXCEL.EXE

Gracias por la respuesta, pero ¿cuál es el permisos para poder matar procesos?
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.