Er is een time-out opgetreden voor de wachtbewerking. ASP

Ik heb een interne website voor ons bedrijf gemaakt. Het liep enkele maanden soepel en daarna heb ik een grote update gedaan vanwege gebruikerssuggesties. Als ik live inloop, loopt het normaal. Toen stuurde een van mijn gebruikers uit Japan me plotseling een “Time-out van de bewerking Wachten”. fout. Wanneer ik de toegang tot die bepaalde link aanvink, wordt deze normaal uitgevoerd voor mij en een ander die ik vraag om te controleren of ze toegang hebben tot die pagina. Ik werk de httpRuntime executionTimeout al bij, maar nog steeds geen geluk. Komt het door de databaseverbinding? Als ik de time-out in de databaseverbinding verhoog, wordt het probleem dan opgelost?


Antwoord 1, autoriteit 100%

Als u de exacte fout “Time-out van de wachtbewerking” heeft gevonden, heeft u waarschijnlijk een database-aanroep die langer duurde dan verwacht. Dit kan verschillende oorzaken hebben:

  1. Tijdelijk netwerkprobleem
  2. Hoge belasting van SQL-server
  3. Probleem met SAN, RAID of opslagapparaat
  4. Deadlock of andere vorm van multiprocess-conflict

Je hebt niet genoeg informatie gedeeld om problemen op te lossen. De manier waarop ik dit zou doen, zou zijn om te controleren op andere gevallen van het probleem en te kijken of er een patroon is, b.v. als het probleem zich op een bepaald tijdstip van de dag voordoet.

Het is zeker geen slecht idee om de time-out te verhogen (als deze momenteel vrij laag is ingesteld) en kan het probleem op zichzelf oplossen.


Antwoord 2, autoriteit 92%

Vergeet niet om de time-out van de verbinding EN de time-out van de opdracht te verhogen:

SqlConnection(@"Data Source=SQLSERVER;Initial Catalog=MYCATALOG;Integrated Security=True;Connection Timeout=1000");//huge timeout

en dan:

com.CommandTimeout = 950;//or whatever

Antwoord 3, autoriteit 29%

Ik heb deze fout verholpen door de exacte procedure te vinden in de gebeurtenisviewer waar de time-out plaatsvond.

Verbonden met dezelfde database in SSMS en uitgevoerd:

exec sp_recompile 'Procedure name'

Het toonde het onderstaande bericht:

Object ‘Procedurenaam’ is gemarkeerd voor hercompilatie.


Antwoord 4

Het kan ook een ander probleem zijn. Als u bijvoorbeeld veel query’s uitvoert tijdens één geopende verbinding en deze de levensduur van de verbinding overschrijdt. Vervolgens moet u de eigenschap Connection Lifetimein uw verbindingsreeks instellen. Hier is de beschrijving:

Wanneer een verbinding wordt hersteld naar de pool, is de aanmaaktijd
vergeleken met de huidige tijd, en de verbinding wordt verbroken als
die tijdspanne (in seconden) overschrijdt de waarde die is opgegeven door Connection
Levenslang. Dit is handig in geclusterde configuraties om belasting te forceren
balanceren tussen een draaiende server en een server die net online is gezet. EEN
waarde van nul (0) zorgt ervoor dat gepoolde verbindingen het maximum hebben
verbindingstime-out.


Antwoord 5

Ga in het bestand web.config naar verbindingen String en voeg dit toe:
;Integrated Security=True;Connect Timeout=120″

Other episodes