Tiempo agotado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminad
Tengo muchos usuarios en mi sitio web (20000-60000 por día), que es un sitio de descarga para archivos móviles. Tengo acceso remoto a mi servidor (Windows Server 2008-R2).
He recibido "El servidor no está disponible" errores antes, pero ahora veo un error de tiempo de espera de conexión.
No estoy familiarizado con esto: ¿por qué ocurre y cómo puedo solucionarlo?
El error completo está debajo:
Error de servidor en la aplicación '/'. Tiempo agotado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminado. Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.
etalles de @Exception: System.Data.SqlClient.SqlException: Tiempo de espera expirado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminado
Error de origen:
Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de la pila de excepciones a continuación.
Stack Trace:
[SqlException (0x80131904): Tiempo de espera expirado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminado.
System.Data.SqlClient.SqlConnection.OnError (excepción SqlException, breakConnection booleana) + 404
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () + 412
System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) + 1363
System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) + 6387741
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) + 6389442
System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, método de cadena, resultado DbAsyncResult) + 538
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (resultado DbAsyncResult, String methodName, Boolean sendToPipe) + 689
System.Data.SqlClient.SqlCommand.ExecuteNonQuery () + 327
NovinMedia.Data.DbObject.RunProcedure (String storeProcName, parámetros IDataParameter [], Int32 & rowsAffected) + 209
DataLayer.OnlineUsers.Update_SessionEnd_And_Online (Object Session_End, Boolean Online) + 440
NiceFileExplorer.Global.Application_Start (remitente de objetos, EventArgs e) + 163
[HttpException (0x80004005): Tiempo de espera expirado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminado.
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (contexto HttpContext, aplicación HttpApplication) + 4052053
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, contexto HttpContext, manejadores MethodInfo []) + 191
System.Web.HttpApplication.InitSpecial (estado HttpApplicationState, manejadores MethodInfo [], IntPtr appContext, contexto HttpContext) + 352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, contexto HttpContext) + 407
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) + 375
[HttpException (0x80004005): Tiempo de espera expirado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde. La instrucción se ha terminado.
System.Web.HttpRuntime.FirstRequestInit (contexto HttpContext) +11686928 System.Web.HttpRuntime.EnsureFirstRequestInit (contexto HttpContext) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkpReque
EDITAR DESPUÉS DE RESPUESTAS:
myApplication_Start
inGlobal.asax
es como a continuación:
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUsers"] = 0;
OnlineUsers.Update_SessionEnd_And_Online(
DateTime.Now,
false);
AddTask("DoStuff", 10);
}
El procedimiento almacenado que se llama es:
ALTER Procedure [dbo].[sp_OnlineUsers_Update_SessionEnd_And_Online]
@Session_End datetime,
@Online bit
As
Begin
Update OnlineUsers
SET
[Session_End] = @Session_End,
[Online] = @Online
End
Tengo dos métodos para obtener usuarios en línea:
utilizandoApplication["OnlineUsers"] = 0;
el otro usando la base de datos Entonces, para el método # 2 reinicio todos los usuarios en línea enApplication_Start
. Hay más de 482,751 registros en esa tabla.