2010-08-19 53 views
8

Recibo muchos de estos mensajes de error en mis registros en uno de mis servidores y de forma intermitente en otros dos.El host remoto cerró la conexión. El código de error es 0x80070057

buscar en Google no reveló mucha información, sobre todo en relación con la carga de archivos o descargas interrumpidas.

Mis páginas son, básicamente, sólo archivos de texto con "OK" en ellos que sólo tiene extensión .aspx para los planes futuros, no hay código real alimentación de las páginas. Los servidores son todos Windows Server 2008 RC2 x64 que ejecutan IIS7/ASP.NET 4.

Estadísticamente está ocurriendo bien en menos del 1% de las veces pero debido al volumen de tráfico que aún atormenta el registro de eventos con 2 o 3 de estos mensajes por minuto.

Editar: localicé el problema, el establecimiento de amortiguación a la verdadera dejado que se produzca.

+0

¿Encontraste contestar? – onder

+0

Hola amigo, sí, el problema era una configuración en mi web.config que tenía el almacenamiento en búfer en falso. – Ben

+0

Consulte http://stackoverflow.com/a/22992379/17373 para ver un ejemplo de cómo capturar esta excepción e ignorarla. –

Respuesta

6

Sé que esto ha sido contestada, pero por si acaso esto ayuda a otra persona, que ocurrió en mi proyecto MVC veces cuando tuve uno dbContext fijado en la parte superior de un repositorio. Cuando cambié a una instrucción de uso para las conexiones a la base de datos, el error nunca apareció nuevamente.

Así, pasé de este en la parte superior de cada repositorio:

DbContext db = new DbContext(); 

Para esto para cada conexión individual:

using (DbContext db = new DbContext()) 
{ 
    //db connection stuff here.... 
} 

vale la pena decir que nadie informó haber visto el error y sin error alguna vez se mostró al navegador, ¡pero es bueno quitarlo de los registros de todos modos!

+0

Me gusta esta respuesta porque, en general, debe usar el método de uso cada vez que utiliza recursos externos (archivos, servicios web, básicamente, todo lo que necesita cerrarse). Esto también es genial porque te ahorra tener que escribir un método destructor o eliminar también, ya que también maneja esto automáticamente. –

3

¿Desea devolver un Stream?

Es posible que necesite para cerrarla después de que finalice método.

Salida esto: Closing Returned Streams in WCF

Aquí está el código de este blog sugiere:

public Stream GetFile(string path) 
{ 
    Stream fileStream = null;  

    try 
    { 
     fileStream = File.OpenRead(path); 
    } 
    catch(Exception) 
    { 
     return null; 
    } 

    OperationContext clientContext = OperationContext.Current; 
    clientContext.OperationCompleted += 
     new EventHandler(delegate(object sender, EventArgs args) 
     { 
      if (fileStream != null) fileStream.Dispose(); 
     }); 
    return fileStream; 
} 
Cuestiones relacionadas