veuillez voir l'erreur ci-dessous :
Server Error in '/' Application.
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +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, String method, DbAsyncResult result) +538
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +689
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +327
NovinMedia.Data.DbObject.RunProcedure(String storedProcName, IDataParameter[] parameters, Int32& rowsAffected) +209
DataLayer.OnlineUsers.Update_SessionEnd_And_Online(Object Session_End, Boolean Online) +440
NiceFileExplorer.Global.Application_Start(Object sender, EventArgs e) +163
[HttpException (0x80004005): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +4052053
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +191
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375
[HttpException (0x80004005): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11686928
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4863749
Je suis vraiment confus au sujet de cette erreur,
J'ai beaucoup d'utilisateurs sur mon site web (20000~60000 par jour)(un site de téléchargement de fichiers mobiles) et j'ai un accès distant à mon serveur (Windows server 2008-R2).
parfois, j'ai server is unavailable error
mais je n'avais pas vu d'erreur de délai de connexion jusqu'à présent.
pourquoi cette erreur se produit-elle et comment puis-je la corriger ?
MODIFIER APRÈS LES RÉPONSES :
mon Application_Start dans Global.asax est comme ci-dessous :
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUsers"] = 0;
OnlineUsers.Update_SessionEnd_And_Online(
DateTime.Now,
false);
AddTask("DoStuff", 10);
}
et cette procédure stockée :
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
J'ai deux méthodes pour obtenir des utilisateurs en ligne.
1-utilisant Application["OnlineUsers"] = 0 ;
2-l'autre utilisant la base de données.
Donc, pour la méthode n°2, je dois réinitialiser tous les OnlineUsers At Application_Start.
et il y a plus de 482 751 enregistrements dans cette table.
1 votes
Comme il est dit ici La valeur par défaut est de 15 secondes
1 votes
Il est préférable de faire une analyse des causes profondes. Il y a plusieurs raisons qui peuvent causer un tel problème. La plus basique est la structure complexe de la requête. J'ai rencontré le même problème lorsque j'ai récupéré des images stockées sous forme de valeurs hexadécimales dans une table.
0 votes
Outre les causes ci-dessus, je vais en ajouter une autre : Le délai de verrouillage : docs.microsoft.com/fr-us/sql/t-sql/statements/ Si ce thread attend le verrou trop longtemps, il va perdre son temps en fonction du document ci-dessus.
0 votes
Le redémarrage du serveur SQL dans les services a réglé le problème pour moi.
0 votes
Remarque : Une autre cause possible de cette erreur est l'utilisation d'une transaction dans votre code C#/VB.NET, puis l'appel d'autres fonctions/subs qui accèdent à la base de données à partir de la transaction. La façon de résoudre ce problème est de passer la base de données aux fonctions/sous-fonctions imbriquées afin qu'elles soient traitées comme faisant partie de la même transaction. (Note : Idéalement, je recommanderais de ne pas faire vos transactions dans votre code d'application ; faites-les plutôt dans le code SQL).