2009-08-26 9 views
1

J'ai un service C#. C'est un cochon de mémoire et de CPU. Il fonctionnera toute la nuit, en déplaçant les données dans la base de données. Vers 7 heures, il poste à l'observateur d'événements, à plusieurs reprises,C# Service Timeout (30000 millisecondes) en attente d'une réponse de transaction dans l'observateur d'événements

Délai (30000 millisecondes) en attente une réponse de transaction du service de NomServeur.

Puis il s'arrête de manière inattendue. Quelqu'un at-il une idée de ce que signifie ce message ou comment le diagnostiquer?

Update 1

Les transactions DB ne sont pas du délai. La console de gestion des services enregistre ce message pour essayer de contrôler le service.

Mise à jour 2

La question ici n'a rien à voir avec l'accès à la base. C'est la console de gestion de service qui lance l'erreur en essayant de contrôler le service.

+0

[Cet article] (http://support.microsoft.com/kb/814626) pourrait être utile pour vous. – malay

Répondre

0

Je suppose que la transaction dure plus de 30 secondes.

Essayez d'envoyer une transaction, quelque chose comme:

utilisant (TransactionScope ...) insérer quelque chose sommeil 30 secondes insérer quelque chose de plus.

Cela devrait vous donner le même résultat. Si c'est le cas, essayez d'optimiser ou de configurer le délai d'expiration de la transaction.

Hope this helps

Cordialement.

0

Cela peut sembler une suggestion bizarre, hors base, mais ... la base de données a-t-elle épuisé l'espace du journal des transactions?

0

A eu le même problème. Vous avez raison, cela n'a rien à voir avec la base de données. Je suppose que vous exécutez Windows Server 2008 ou Vista et que votre application est en quelque sorte multi-thread.

Essayez ceci:

http://support.microsoft.com/kb/972596/

1

Cela se produit si le thread principal de votre service ne retourne pas le contrôle en 30 secondes. Toutefois, si vous vérifiez votre gestionnaire de tâches, votre service exe sera toujours exécuté en arrière-plan.

La solution consiste à s'assurer que la fonction principale de votre service revient dans le délai imparti.

-Surya

Questions connexes