Délai De Temporisation De Sémaphore

j'ai récemment effacé et réinstallé/configuré tous les composants de mes serveurs web et DB. J'exécute IIS 6, .NET 3.5, SQL Server 2005. Les deux serveurs sont des VM séparés dans le même domaine. Mon application web fonctionne parfaitement... 90% du temps. Mais de temps en temps je reçois cette erreur ou une erreur générique d'exécution:

Système.Données.SqlClient.SqlException: une erreur de niveau de transport s'est produite lors de la réception des résultats du serveur. (fournisseur: fournisseur TCP, erreur: 0 - Le délai d'attente du sémaphore est expiré.)

pouvez-vous me donner des pistes sur où commencer le dépannage? Je pense vraiment que j'ai manqué quelque chose dans IIS.

Merci d'avance!

25
demandé sur Rui Jarimba 2009-02-15 20:53:07

6 réponses

après avoir résolu le problème pendant des heures et avoir téléphoné à mon groupe d'hébergement, ils ont découvert qu'il y avait un problème avec leur configuration réseau. La solution a été rendue plus claire lorsque lors de mes tests, l'un des VM ne pouvait pas trouver le domaine, et qu'un simple "ping" vers L'IP de chaque boîte de l'autre s'arrêtait de temps en temps. Ceci excluait complètement le DNS. Après que le groupe d'hébergement a appliqué la bonne configuration de leur côté l'application a été stable et Vite!

Merci pour l'aide de tous!

12
répondu erick.brower 2009-02-24 19:02:48

pouvez-vous revérifier la charge sur le serveur db? Nous recevons de temps en temps dans notre dev env, mais jamais dans la prod env.

2
répondu renegadeMind 2009-02-15 17:57:41

je commencerais par m'assurer que j'exécute la dernière version des pilotes réseau de ma machine virtuelle.

on dirait que les communications sont en panne entre vos 2 VM. Essayez d'ouvrir une socket TCP entre les deux machines et voyez si elle meurt après un certain temps.

2
répondu Sam Saffron 2009-02-19 06:23:01

quelques pointeurs sont ici .Fondamentalement, l'erreur est lancée par la couche réseau et SQL server ne fait que la signaler.

J'espère que ça aidera.

2
répondu Learning 2009-02-19 06:55:38

vérifier si la procédure stockée n'importe quelle ligne DÉFINIR LE NIVEAU D'ISOLEMENT DES TRANSACTIONS LIRE NON ENGAGÉ

Pour moi, c'était la question

0
répondu Liju 2017-07-19 09:18:38

Fin du jeu, mais j'ai été faire cette même erreur avec un .NET web app/MS SQL. Site hébergé dans IIS sur GoDaddy VPS, hébergement a plusieurs IPs, DB hébergé à Azure.

je crois que mon problème était (idiot!), J'ai simplement oublié de mettre les adresses IP dédiées au site GD de GD dans le pare-feu Azure pour le serveur SQL. Pour une raison étrange, le trafic est acheminé vers/depuis GD/Azure en dehors de l'adresse IP réelle du site (les adresses IIS binding) et fonctionne.

mais le plus souvent, les adresses de liaison IIS sont celles qui appellent Azure à interagir avec les services SQL. J'ai corrigé les paramètres du pare-feu sur Azure pour inclure les IPs corrects de GoDaddy et (frapper sur le bois) l'erreur de sémaphore semble parti maintenant.

en d'autres termes, avant de commencer à chercher de gros problèmes, commencez simplement et assurez-vous de vérifier des choses faciles comme les paramètres réseau/pare-feu.

0
répondu Ted Krapf 2018-02-03 08:24:34