Excepcion

26/04/2006 - 15:38 por oskar | Informe spam
Hola a todos he relizado un programa que verifica un directorio y envia
un correo. En un pc como administrador o invitado funciona
perfectamente. Pero lo ejecuto en otro con niveles de usuario
especificos (vastante capados) me peta al ejecutar.
Lo malo es que no se que es lo que lo hace petar.
Es un proyecto windows pero sin ventanas. Tiene un main i un bucle
infinito.
Tengo puesto try{}catch{} desde la primera instruccion pero cuando lo
ejecuto peta.
He relizado un proceso de instalacion para ver si faltaba el framework
y lo ha instalado bien si pedir que hacía falta el framework. Pero al
ejecutarlo unhandled exception pero en teoria todas las excepciones las
tengo controladas pq tengo try catch desde la primer linia de codigo.

Como puedo hacer que me diaga que excepcion se esta lanzando ?

Gracias.

Preguntas similare

Leer las respuestas

#1 solusoft
26/04/2006 - 17:10 | Informe spam
Mira en Herramientas Administrativas -> Wizards de .NET Framework 1.1 ->
Ajustar la seguridad, quizá te ayude.

"oskar" escribió:

Hola a todos he relizado un programa que verifica un directorio y envia
un correo. En un pc como administrador o invitado funciona
perfectamente. Pero lo ejecuto en otro con niveles de usuario
especificos (vastante capados) me peta al ejecutar.
Lo malo es que no se que es lo que lo hace petar.
Es un proyecto windows pero sin ventanas. Tiene un main i un bucle
infinito.
Tengo puesto try{}catch{} desde la primera instruccion pero cuando lo
ejecuto peta.
He relizado un proceso de instalacion para ver si faltaba el framework
y lo ha instalado bien si pedir que hacía falta el framework. Pero al
ejecutarlo unhandled exception pero en teoria todas las excepciones las
tengo controladas pq tengo try catch desde la primer linia de codigo.

Como puedo hacer que me diaga que excepcion se esta lanzando ?

Gracias.


Respuesta Responder a este mensaje
#2 Octavio Hernandez
26/04/2006 - 17:29 | Informe spam
Oskar,

Haz esto:

try
{
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}

En general ese proyecto deberías hacerlo, creo, un SERVICIO Windows, dado
que no necesita interfaz de usuario. Por ahí también resolverías los
problemas de permisos.

Salu2 - Octavio



"oskar" escribió en el mensaje
news:
Hola a todos he relizado un programa que verifica un directorio y envia
un correo. En un pc como administrador o invitado funciona
perfectamente. Pero lo ejecuto en otro con niveles de usuario
especificos (vastante capados) me peta al ejecutar.
Lo malo es que no se que es lo que lo hace petar.
Es un proyecto windows pero sin ventanas. Tiene un main i un bucle
infinito.
Tengo puesto try{}catch{} desde la primera instruccion pero cuando lo
ejecuto peta.
He relizado un proceso de instalacion para ver si faltaba el framework
y lo ha instalado bien si pedir que hacía falta el framework. Pero al
ejecutarlo unhandled exception pero en teoria todas las excepciones las
tengo controladas pq tengo try catch desde la primer linia de codigo.

Como puedo hacer que me diaga que excepcion se esta lanzando ?

Gracias.
Respuesta Responder a este mensaje
#3 oskar
26/04/2006 - 18:38 | Informe spam
Esto ya lo hago pero no me muestra el message box me sale un pantallazo
feo de error no capturado.
El servicio no lo puedo hacer pq no tengo permisos para crear un
servicio. Se puede crear un servicio
en una maquina sin permisos ? No creo que tenga acceso al regedit para
registrarlo.
Respuesta Responder a este mensaje
#4 Octavio Hernandez
27/04/2006 - 00:21 | Informe spam
Oscar,

¿Puedes mandarnos el pantallazo o el texto del mensaje?

Slds - Octavio


"oskar" escribió en el mensaje
news:
Esto ya lo hago pero no me muestra el message box me sale un pantallazo
feo de error no capturado.
El servicio no lo puedo hacer pq no tengo permisos para crear un
servicio. Se puede crear un servicio
en una maquina sin permisos ? No creo que tenga acceso al regedit para
registrarlo.

Respuesta Responder a este mensaje
#5 oskar
28/04/2006 - 13:02 | Informe spam
Donde lo mando ... no puedo adjuntar imagenes:
Cabecera Ventana Error: NombrePrograma.exe Common Language Runtime
Debugger Service
Cuerpo: Application has generated an exception that could not be
handled.
Prodces id=0xccc0 (3264) , thread id=0xb74 (2932)
Click ok
He realizado pruebas
La línea culpable de que pete es: FSWatcher=new
System.IO.FileSystemWatcher();
He enviado un programa SIN esta línea y funciona, pero CON esta línea
da la petada. Lo sorprendente es que está
en un bloque try{} catch{} si por permisos no puedo crear esta
instalcia me lo deberia indicar no ????
Codigo: (la linia en cuestion esta con ******************)

using System;
using Envio_Correo;
using System.IO;



namespace Envio_Correo_Consola
{
/// <summary>
/// Descripción breve de Class1.
/// </summary>
class Class1
{
/// <summary>
/// Punto de entrada principal de la aplicación.
/// </summary>
///
private static bool bTraces,bExecut;
private static System.IO.FileSystemWatcher FSWatcher;
//private static System.IO.FileStream fTraces;
//private static StreamWriter fStream;

public static string tPath="O:\\Importac";

[STAThread]
static void Main(string[] args)
{
//
// TODO: agregar aquí código para iniciar la aplicación
//
try
{
bTraces=false;
bExecut=true;

for (int i=1;i<=args.Length;i++) Arguments(args[i-1].ToString());
if (bExecut)
{
//if (bTraces) { fStream.WriteLine("Iniciant
Programa");fStream.Flush(); }
iCreate=0;
//FSWatcher=new System.IO.FileSystemWatcher();
***************************

//FSWatcher.Filter = "9ofpersones*.*";
//FSWatcher.Path = tPath;

//FSWatcher.Changed += new
System.IO.FileSystemEventHandler(FSWatcher_Changed);
//if (bTraces) { fStream.WriteLine("EnableRaisingEvents Path={0}
Filter={1}",FSWatcher.Path,FSWatcher.Filter);fStream.Flush(); }
//FSWatcher.EnableRaisingEvents = true;
//if (bTraces) Console.WriteLine("Press \'q\' to quit the
sample.");
while(true)
{
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(200);
}
}
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString(),"Error
Envio_Correo");
}
//while(Console.Read()!='q');
}
private static void Arguments(string tArgume)
{
if (tArgume.ToUpper()=="-?")
{
System.Windows.Forms.MessageBox.Show("Us: EnvioCorreo.exe -args
args: -t -> Trace -P:ruta ruta=o:\\direcori -> Ruta a
Controlar","Us Apli");
bExecut=false;
}

if (tArgume.ToUpper()=="-T")
{
bTraces=true;
//fTraces=new
FileStream("Trace.txt",System.IO.FileMode.Append,System.IO.FileAccess.Write);
//fStream=new StreamWriter(fTraces);
//fStream.WriteLine("**** Inici Trace
{0}",System.DateTime.Now.ToString());fStream.Flush();
}
int nMaxLen=System.Math.Min(3,tArgume.Length);
if (tArgume.Substring(0,nMaxLen).ToUpper()=="-P:")
{
tPath=tArgume.Substring(3,tArgume.Length-3);
}

}
private static int iCreate;
private static void FSWatcher_Changed(object sender,
System.IO.FileSystemEventArgs e)
{
// Puc obrir fitxer
//System.IO.FileStream fCanOpe;
bool bCanOpe=false;
double nTamany=0;
try
{
//fCanOpe=new
FileStream(e.FullPath,System.IO.FileMode.Open,System.IO.FileAccess.Write);
//nTamany=fCanOpe.Length;
bCanOpe=true;
//fCanOpe.Close();
//if (bTraces) { fStream.WriteLine("Ok..{0}",
e.FullPath);fStream.Flush(); }
}
catch
{
//if (bTraces) { fStream.WriteLine("NO..{0}",
e.FullPath);fStream.Flush(); }
}
// Puc Enviar. Si tamany fitxer=0 nomes 2 events.
try
{
iCreate += 1;
//if (bTraces) { fStream.WriteLine("Evento (iCreate={0}): File {1}
{2}",iCreate, e.FullPath, e.ChangeType);fStream.Flush(); }
if ((iCreate==3)||(iCreate==2&&nTamany==0&&bCanOpe))
{
//Creat,Crear,Acabat
//if (bTraces) { fStream.WriteLine("!!Enviar (iCreate={0}): File
{1} {2}",iCreate, e.FullPath, e.ChangeType);fStream.Flush(); }
//EnviarFitxer(e.FullPath);
iCreate=0;
//if (bTraces) { fStream.WriteLine("!!Enviado
OK");fStream.Flush(); }
System.GC.Collect();
}
}
catch(Exception ex)
{
iCreate=0;
}

}
private static void EnviarFitxer(string tFitxer)
{
Correo c=new Correo();
c.EnviarMensaje("","","xxx ","\xxxx
",tFitxer);
}
}
}
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida