J'obtiens une erreur SQL Server:
Une erreur au niveau du transport s'est produite lors de la réception des résultats du serveur. (fournisseur: fournisseur de mémoire partagée, erreur: 0 - le handle n'est pas valide.)
J'exécute Sql Server 2008 SP1, Windows 2008 Standard 64 bits.
C'est une application Web .Net 4.0. Cela se produit lorsqu'une demande est faite au serveur. C'est intermittent. Une idée comment je peux le résoudre?
sql-server-2008
Chuck Conway
la source
la source
this one was resolved in a manner unlikely to help future readers
- mais 179k personnes ont rencontré cette question.Réponses:
La connexion à la base de données est fermée par le serveur de base de données. La connexion reste valide dans le pool de connexions de votre application; par conséquent, lorsque vous récupérez la chaîne de connexion partagée et essayez de l'exécuter, il ne peut pas atteindre la base de données. Si vous développez Visual Studio, fermez simplement le serveur Web temporaire dans votre barre des tâches.
Si cela se produit en production, la réinitialisation de votre pool d'applications pour votre site Web devrait recycler le pool de connexions.
la source
MultipleActiveResultSets=True
paramètre dans la chaîne de connexion qui a causé la même erreur.Essayez la commande suivante sur l'invite de commande:
Cela désactive les capacités de mise à l'échelle automatique de la pile réseau
la source
J'ai eu le même problème. J'ai redémarré Visual Studio et cela a résolu le problème
la source
Pour ceux qui n'utilisent pas IIS, j'ai eu ce problème lors du débogage avec Visual Studio 2010. J'ai arrêté tous les processus de débogage: WebDev.WebServer40.EXE qui a résolu le problème.
la source
Les erreurs de niveau de transport sont souvent liées à la rupture de la connexion au serveur SQL ... généralement réseau.
Timeout Expired est généralement levé lorsqu'une requête SQL prend trop de temps à s'exécuter.
Si peu d'options peuvent être:
la source
Tout ce dont vous avez besoin est d'arrêter le serveur de développement ASP.NET et de réexécuter le projet
la source
Si vous êtes connecté à votre base de données via Microsoft SQL Server Management, fermez toutes vos connexions et réessayez. Eu cette erreur lors de la connexion à une autre base de données Azure et a fonctionné pour moi lors de sa fermeture. Je ne sais toujours pas pourquoi ...
la source
J'obtenais cela, toujours après environ 5 minutes de fonctionnement. Enquêté et trouvé qu'un avertissement de e1iexpress se produit toujours avant l'échec Il s'agit apparemment d'une erreur liée à certains adaptateurs TCP / IP. Mais le passage du WiFi au filaire ne l'a pas affecté.
J'ai donc essayé le plan B et redémarré Visual Studio. Ensuite, cela a bien fonctionné.
En étudiant de plus près, j'ai remarqué qu'en fonctionnant correctement, le message se
The Thread '<No Name>' has exited with code 0
produisait presque exactement au moment où l'exécution s'est plantée lors des tentatives précédentes. Certains googlages révèlent que ce message apparaît lorsque (entre autres) le serveur coupe le pool de threads.Vraisemblablement, il y avait un faux thread dans le pool de threads et chaque fois que le serveur tentait de le "couper", il supprimait l'application.
la source
Regardez le blog MSDN qui détaille cette erreur:
la source
Vous recevez ce message lorsque votre script arrête le service SQL pour certaines raisons. donc si vous redémarrez SQL Service, votre problème sera peut-être résolu.
la source
Je sais que cela n'aidera peut-être pas tout le monde (qui sait, peut-être que oui), mais j'ai eu le même problème et après un certain temps, nous avons réalisé que la cause était quelque chose hors du code lui-même.
L'ordinateur essayant d'atteindre le serveur était dans un autre réseau, la connexion a pu être établie mais ensuite abandonnée.
La façon dont nous avions l'habitude de résoudre ce problème était d'ajouter une route statique à l'ordinateur, permettant un accès direct au serveur sans passer par le pare-feu.
Échantillon:
J'espère que cela aide quelqu'un, il vaut mieux avoir cela, au moins comme indice, donc si vous y faites face, vous savez comment le résoudre.
la source
J'ai eu la même erreur dans l'environnement de développement Visual Studion 2012, j'ai arrêté IIS Express et j'ai réexécuté l'application, cela a commencé à fonctionner.
la source
Dans mon cas, le service serveur "SQL Server" s'est arrêté. Lorsque j'ai redémarré le service qui m'a permis d'exécuter la requête et d'éliminer l'erreur.
C'est également une bonne idée d'examiner votre requête pour savoir pourquoi la requête a arrêté ce service
la source
J'ai eu le même problème. Je l'ai résolu en tronquant le journal SQL Server. Vérifiez cela, puis dites-nous si cette solution vous a aidé.
la source
Pour moi, la réponse est de mettre à niveau le système d'exploitation de 2008R2 à 2012R2, la solution d'iisreset ou de redémarrer apppool n'a pas fonctionné pour moi. J'ai également essayé de désactiver le paramètre TCP Chimney Offload, mais je n'ai pas redémarré le serveur car il s'agit d'un serveur de production, qui ne fonctionnait pas non plus.
la source
Pour moi, la solution était totalement différente.
Dans mon cas, j'avais une source d'objets qui nécessitait un paramètre datetimestamp. Même si ce paramètre ODS ConvertEmptyStringToNull était vrai, 1/1/0001 était passé à SelectMethod. Cela a à son tour provoqué une exception de dépassement de date SQL lorsque cette date a été transmise au serveur SQL.
Ajout d'une vérification supplémentaire pour datetime.year! = 0001 et cela l'a résolu pour moi.
Bizarre que cela génère une erreur de niveau de transport et non une erreur de dépassement de date / heure. Quoi qu'il en soit ..
la source
Nous avons rencontré cette erreur récemment entre notre serveur d'entreprise et notre serveur de base de données. La solution pour nous était de désactiver le «déchargement IP» sur les interfaces réseau. Puis l'erreur a disparu.
la source
L'une des raisons pour lesquelles j'ai trouvé cette erreur est ' Packet Size = xxxxx ' dans la chaîne de connexion. si la valeur de xxxx est trop grande, nous verrons cette erreur. Supprimez cette valeur et laissez le serveur SQL la gérer ou conservez-la à un niveau bas, selon les capacités du réseau.
la source
Cela m'est arrivé lorsque j'essayais de restaurer une base de données SQL et que j'ai coché la case à cocher dans l'
Options
onglet,Comme il s'agit d'un serveur de base de données autonome, le simple fait de fermer SSMS et de le rouvrir a résolu le problème pour moi.
la source
Cela se produit lorsque la base de données est supprimée et recréée, certaines ressources partagées considèrent toujours que la base de données existe toujours, donc lorsque vous réexécutez la requête d'exécution pour créer des tables dans la base de données après sa recréation, l'erreur ne s'affichera plus et le
Command(s) completed successfully.
message s'affichera à la place du message d'erreurMsg 233, Level 20, State 0, Line 0 A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
.Ignorez simplement cette erreur lorsque vous supprimez et recréez des bases de données et réexécutez vos requêtes DDL sans souci.
la source
J'ai rencontré le même problème récemment, mais je n'ai pas pu obtenir de réponse dans Google. J'ai donc pensé à le partager ici, pour qu'il puisse aider quelqu'un à l'avenir.
Erreur:
Lors de l'exécution de la requête, la requête fournira peu de résultats, puis elle lancera l'erreur ci-dessous.
Solution:
la source