none
[Ayuda] Enviar reporte de ThreadExceptionEventArgs RRS feed

  • Pregunta

  • Buenos días,

    Dentro del inicio de mi programa (Submain) tengo puesta esta función para cuando se produce un error en la aplicación, salte un mensaje.

        Private Sub Application_ThreadException(ByVal sender As Object, ByVal e As ThreadExceptionEventArgs)
    
    MessageBox.Show(e.Exception.Message)
    
    End sub

    Lo que quiero saber, es que cuando se produzca alguna excepcion, me lo envie a una dirección de correo electronico o me lo reporte mediante una plataforma de forma segura, donde no tenga que introducir en el codigo de fuente de mi programa credenciales de alguna cuenta mia como por ejemplo la del email. También voy a usar osticket en mi web por si puede servir de algo mediante alguna api de esa plataforma.

    lunes, 21 de agosto de 2017 10:40

Respuestas

  • Puedes enviarte el mensaje por eMail usando las funciones que hay en el espacio de nombres System.Net.Mail. Esto requiere que el programa contenga la cuenta de correo de destino, pero no requiere ningunas credenciales para dicha cuenta. Lo que si que requiere es que se le indique un servidor de correo saliente, y la mayoria de los servidores de correo requieren credenciales para permitirte enviar correo. Si vas a disponer de tu propia maquina servidora, podrias instalar dentro tu propio servidor SMTP y aceptar conexiones sin credenciales para aquellos envios que vayan dirigidos a la cuenta de coreo donde deseas recibir esos mensajes. Pero puestos a tener tu propio servidor, es mas sencillo olvidarse del correo y habilitar un servicio web para recibir esos mensajes de error.
    lunes, 21 de agosto de 2017 15:25
  • Bueno, en Visual Studio, aprovechando algún proyecto Web que ya tengas (o uno nuevo creado con la plantilla de Visual Studio), le dices que añada un servicio web, y ya te agrega el fichero .svc más las clases con los métodos y el Service Contract. Editas el método que te pone como ejemplo para que tenga los parámetros que te convengan, y lo compilas y publicas permitiendo el acceso anónimo (para que no requiera credenciales). Después en la aplicación cliente le dices "añadir referencia al servicio", apuntas al servicio que publicaste, y automáticamente te crea en el cliente una clase con un método igualito que el que definiste en el servidor. Cuando llames a ese método pasándole parámetros, la llamada se retransmite automáticamente al servidor y le llegan todos los parámetros.

    Todo eso así escrito parece más complicado de lo que realmente es. Busca en la red algún tutorial sobre servicios web en asp.net, que te explicará todo eso paso a paso, y ya verás que es mucho más fácil de lo que parece. Solo requiere unos pocos clicks de ratón en Visual Studio, y con eso estás llamando desde tu aplicación cliente a un método en el lado servidor.

    lunes, 21 de agosto de 2017 18:51

Todas las respuestas

  • Puedes enviarte el mensaje por eMail usando las funciones que hay en el espacio de nombres System.Net.Mail. Esto requiere que el programa contenga la cuenta de correo de destino, pero no requiere ningunas credenciales para dicha cuenta. Lo que si que requiere es que se le indique un servidor de correo saliente, y la mayoria de los servidores de correo requieren credenciales para permitirte enviar correo. Si vas a disponer de tu propia maquina servidora, podrias instalar dentro tu propio servidor SMTP y aceptar conexiones sin credenciales para aquellos envios que vayan dirigidos a la cuenta de coreo donde deseas recibir esos mensajes. Pero puestos a tener tu propio servidor, es mas sencillo olvidarse del correo y habilitar un servicio web para recibir esos mensajes de error.
    lunes, 21 de agosto de 2017 15:25
  • Hola Alberto,

    Gracias por responder. Y para crear un servicio web para que me lleguen estos mensajes sin tener que exponer las credenciales en el programa, habría algún proyecto para basarme o me podrías ayudar?

    Gracias

    lunes, 21 de agosto de 2017 17:20
  • Bueno, en Visual Studio, aprovechando algún proyecto Web que ya tengas (o uno nuevo creado con la plantilla de Visual Studio), le dices que añada un servicio web, y ya te agrega el fichero .svc más las clases con los métodos y el Service Contract. Editas el método que te pone como ejemplo para que tenga los parámetros que te convengan, y lo compilas y publicas permitiendo el acceso anónimo (para que no requiera credenciales). Después en la aplicación cliente le dices "añadir referencia al servicio", apuntas al servicio que publicaste, y automáticamente te crea en el cliente una clase con un método igualito que el que definiste en el servidor. Cuando llames a ese método pasándole parámetros, la llamada se retransmite automáticamente al servidor y le llegan todos los parámetros.

    Todo eso así escrito parece más complicado de lo que realmente es. Busca en la red algún tutorial sobre servicios web en asp.net, que te explicará todo eso paso a paso, y ya verás que es mucho más fácil de lo que parece. Solo requiere unos pocos clicks de ratón en Visual Studio, y con eso estás llamando desde tu aplicación cliente a un método en el lado servidor.

    lunes, 21 de agosto de 2017 18:51