Hola gente,
 
No voy a dar una solucion, mas bien al contrario.
 
Tengan en cuenta que Excel NO es una aplicacion para funcionar en el
servidor, es una aplicacion pensada para ser usada por un usuario de carne y
hueso, a su velocidad, de a una instancia por vez, etc.
 
Creo que es una mala decision de arquitectura usar Excel en el servidor.
Distinto es el caso de una aplicacion Winforms que utiliza el Excel del
cliente.
 
Hay componentes que permiten manipular archivos Excel en el contexto de un
servidor.
 
Saludos
 
Carlos Peix

  _____  

De: [email protected] [mailto:[email protected]] En nombre de Carlos Bernardo
Maggiotti
Enviado el: Jueves, 18 de Diciembre de 2008 11:25 a.m.
Para: vbnet List Member
Asunto: [vbnet] xcel


Yo lo resolvi de la siguiente manera. Quiza no sea muy prolijo pero me
funciono.
 
1 - La idea es almacenar la referencia al Proceso en el que corre la
isntancia de Excel
 
'Memory Proc reference
Dim oProc As System.Diagnostics.Process

2 - En el momento de crear la instancia Excel mandamos a obtener la
referecnia
 
oExcel = New Excel.Application
'Get the Recent Excel Instance
Call GetProc()

3 - Este seria el GetProc() en el que tomamos el ultimo proceso creado
(asumimos que es nuestro Excel)
 
Private Sub GetProc()
   Dim dStartTime As DateTime = Convert.ToDateTime("01-01-2006 00:00:00")
   Dim oProcs() As System.Diagnostics.Process
   Dim i As Integer
   oProcs = System.Diagnostics.Process.GetProcessesByName("EXCEL")
   For i = 0 To oProcs.Length - 1
      If dStartTime < oProcs(i).StartTime() Then
         dStartTime = oProcs(i).StartTime()
         oProc = oProcs(i)
      End If
   Next
End Sub
 
4 - Viendo esto un poco yo tomaria el valor de la variable dStartTime
instantes antes de ejecutar 'oExcel = New Excel.Application' (fé de errata)
 
5 - Teniendo el proceso referenciado, podrémos entonces hacer lo siguiente.
(En un Finalize)
 
Call KillProc()
 
Siendo KillProc()
 
Private Sub KillProc()
   oProc.Kill()
End Sub
 
Saludos y espero que les sirva. Si alguien aporta algo mejor pues bienvenido
sea...
 
CarlosMag

  _____  


From: [email protected]
To: [email protected]
Subject: [vbnet] Excel
Date: Thu, 18 Dec 2008 11:02:06 -0200




Mauro:

Yo en lo personal lamentablemente ya renegué con eso y mucho pero no
encontré forma de solucionarlo, sigue ahí cada tanto explotando el server
porque se queda sin memoria cuando muchos reportes se exportan seguido. Tené
en cuenta que si bien el proceso queda, un par de horas después (por lo
menos en mi caso) se mata solo.

 

Si alguien encuentra el “key” de la cuestión, me sumo al agradecimiento.

 

Saludos.

 

 

García Máximo

Socio MUG Nº 2275

[email protected]

  _____  

From: [email protected] [mailto:[email protected]] On Behalf Of Mauro Andrea
Sent: Jueves, 18 de Diciembre de 2008 11:45 a.m.
To: vbnet List Member
Subject: [vbnet] Excel

 

Hola a todos....

 

Les comento, estoy trabajando en una aplicación que exporta de forma
automática datos a una planilla en Excel y después envía la planilla zipeada
por mail.

 

El tema es que a pesar de guardar el libro, cerrarlo y cerrar el Excel con
su método "quit" éste sigue quedando en memoria por lo que tengo que
ejecutar un comando para que mate el proceso que quedó en la memoria....

 

Alguno ya renegó con ésto y me puede pasar algo de info?

 

Gracias.

 

Mauro Andrea
Newdev S.R.L. - Tecnología Informática
Nueva dirección: Rioja 1151 Piso 3 Of. 3
Tel. (0341) 530-0572 / 425-9808
MSN: [email protected]
www.newdev.com.ar

 


  _____  

¡Aprendé como hacerlo aquí! Llamá a telefonos fijos desde tu Messenger
<https://live.us.telefonica.com/>  

Responder a