|
 |
aspx_espanol thread: Poner errores en el EventLog
Message #1 by =?iso-8859-1?q?Abiezer=20Matos?= <negrabichuela@y...> on Mon, 24 Feb 2003 10:49:21 -0600 (CST)
|
|
SUPER, yo tampoco estoy muy acostumbrado a usar el eventlog y tampoco los try y cach pero ya tendre que ponerme leer un poquito, =),
gracias javier , muchas gracias.
javier.cancela.vicente@s... wrote:No estoy muy familiarizado con la sintaxis de VisualBasic, pero a ver si te
puedo servir de ayuda:
Utilizas Err.Number para comprobar el error, pero que yo sepa Err es un
objeto de VisualBasic 6, no de VisualBasic.NET.
En cualquier caso no es necesario, puesto que la sentencia Try...Catch se
encarga de capturar los errores que ocurran. Por ejemplo:
Try
conn.Open()
Retorno = comando.ExecuteScalar
Catch ex as Exception
EventLog.WriteEntry("WSExtensiones", "Error al tratar de actualizar
extension: " & ex.Message, EventLogEntryType.Error)
Throw New System.Web.Services.Protocols.SoapException("Error al
tratar de actualizar extension.",SoapException.ClientFaultCode)
Finally
conn.Close()
End Try
En este código capturas todas las excepciones producidas al abrir la
conexión o al ejecutar el comando. Si se produce un error, lo escribe en el
log de eventos y manda una excepción soap al cliente del servicio web para
que este gestione el error como le convenga.
Ten en cuenta que cada método devuelve distintos tipos de excepciones, que
heredan todos de la clase Exception. Si te interesa puedes capturar por
separado las excepciones del tipo OleDbException e InvalidOperationException
(que indican cosas distintas, puedes consultar la ayuda para verlo) para
escribir distintos errores.
La parte
If Not EventLog.SourceExists("WSExtensiones") Then
EventLog.CreateEventSource("WSExtensiones", "Application")
End If
la movería por ejemplo al constructor de la clase, para que la comprobación
se haga tan solo cuando construyes el objeto que contiene al método web.
-----Mensaje original-----
De: Abiezer Matos [mailto:negrabichuela@y...]
Enviado el: lunes, 24 de febrero de 2003 19:49
Para: ASP.Net en Español
Asunto: [aspx_espanol] RE: Poner errores en el EventLog
este es mi codigo quisiera sabes si pudiera ser mas especifico, no se quizas
capturar el error de sql y ademas de escribir el error en el eventlog
mandarlo a la pagina que esta consumiendo el webservice????
Public Function Actualizar(ByVal phone_no As String, ByVal
empl_uno As String)
Dim param As New OleDbParameter()
Dim comando As OleDbCommand = New OleDbCommand()
Dim strconn As String = "File Name=c:\cms.udl"
Dim conn As OleDbConnection = New OleDbConnection(strconn)
comando.Connection = conn
comando.CommandType = CommandType.StoredProcedure
comando.CommandText = "ExtensionesActualizar_SP"
With param
.ParameterName = "@phone_no"
.OleDbType = OleDbType.Char
.Value = phone_no
End With
comando.Parameters.Add(param)
param = New OleDbParameter()
With param
.ParameterName = "@empl_uno"
.OleDbType = OleDbType.Char
.Value = empl_uno
End With
comando.Parameters.Add(param)
Dim Retorno As Integer = 0
conn.Open()
Try
Retorno = comando.ExecuteScalar
'ESTO ES PARA QUE VALIDE SI HAY ERROR O NO
If Err.Number <> 0 Then
If Not EventLog.SourceExists("WSExtensiones") Then
EventLog.CreateEventSource("WSExtensiones", "Application")
EventLog.WriteEntry("WSExtensiones", "Error al tratar de actualizar
extension", EventLogEntryType.Error)
End If
End If
Finally
conn.Close()
End Try
Return Retorno
End Function
javier.cancela.vicente@s... wrote:Para escribir en el log de eventos
puedes utilizar la clase EventLog del
namespace System.Diagnostics.
Inicialmente tienes que registrar la fuente de eventos, en este caso tu
servicio web:
if (!EventLog.SourceExists("Mi Servicio Web"))
{
EventLog.CreateEventSource("Mi Servicio Web", "Application");
}
Con esto creas una fuente de eventos para el log de aplicaciones. Para
escribir el error en el mismo tan solo tienes que hacer:
EventLog.WriteEntry("Mi Servicio Web", "Esta es la descripción del error",
EventLogEntryType.Error);
Ten en cuenta que para registrar la fuente de eventos el usuarios ASPNET
necesitará permisos de escritura en
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
-----Mensaje original-----
De: Abiezer Matos [mailto:negrabichuela@y...]
Enviado el: lunes, 24 de febrero de 2003 17:49
Para: ASP.Net en Español
Asunto: [aspx_espanol] Poner errores en el EventLog
hola. he hecho un webservice que tiene algunas funciones el caso es que
cuando estoy validando los parametros me gustaria en caso de error
presentarlos en el eventlog y un mensage en xml, no se si me rrecomienda que
lo haga asi en caso de que si favor me dicen como pongo el error en el
eventlog... muchas gracias.
=======================================
Abiezer Matos
.NET Developer
Servicobros S.A.
Republica Dominicana
http://www.abiezermatos.cjb.net
---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del
Mundo.
Visíta Yahoo! Noticias.
---
Usted está suscrito a aspx_espanol como:
javier.cancela.vicente@s...
Para darse de baja, envíe un mensaje en blanco a
%%email.unsub%%
---
Usted está suscrito a aspx_espanol como:
negrabichuela@y...
Para darse de baja, envíe un mensaje en blanco a
%%email.unsub%%
=======================================
Abiezer Matos
.NET Developer
Servicobros S.A.
Republica Dominicana
http://www.abiezermatos.cjb.net
---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del
Mundo.
Visíta Yahoo! Noticias.
---
Usted está suscrito a aspx_espanol como:
javier.cancela.vicente@s...
Para darse de baja, envíe un mensaje en blanco a
%%email.unsub%%
---
Usted está suscrito a aspx_espanol como:
negrabichuela@y...
Para darse de baja, envíe un mensaje en blanco a
%%email.unsub%%
=======================================
Abiezer Matos
.NET Developer
Servicobros S.A.
Republica Dominicana
http://www.abiezermatos.cjb.net
---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.
|
|
 |