Hola a todos.
Tengo un pequeño problema de concurrencia cuando utilizo la clase
System.Diagnostics.Trace.
Tengo un servicio de Windows que cada X segundos llama a un Servicio Web.
Este Servicio Web utiliza la clase anteriormente comentada para escribir una
serie de resultados en un determinado fichero de log.
El problema lo tengo cuando la segunda vez que se llama al Servicio Web,
éste intenta escribir en el fichero de log. Al parecer, detecta que el
fichero todavía está utilizándolo la primera llamada (cuando en verdad ya ha
finalizado) del servicio web y entonces se me genera un error de tipo
Input/Output exception. A continuación os muestro la llamada del servicio web
que estoy utilizando:
<WebMethod(Description:="PublicaXML")> _
Public Function PublicaXML(ByVal directorio As String, ByVal dirXML As
String, ByVal limite As String) As Boolean
Dim Resultado As Boolean = False
Try
System.Diagnostics.Trace.AutoFlush = True
System.Diagnostics.Trace.Listeners.Add(New
TextWriterTraceListener("C:\FicheroLog.log"))
System.Diagnostics.Trace.WriteLine("Llamo a PublicarPosting",
"PublicaXML")
Resultado = LlamadaALaFuncion()
System.Diagnostics.Trace.WriteLine("Fin de PublicarPosting",
"PublicaXML")
Return Resultado
Catch ex As Exception
System.Diagnostics.Trace.WriteLine("Se ha producido un error:" &
ex.ToString, "PublicaXML")
Return False
End Try
End Function
Creo que el problema se debe a algún tema relacionado con la concurrencia de
los servicios.
¿Puede alguien hecharme una mano?
Muchas gracias y un saludo.