Intermittente étrange SQL erreur de connexion, des correctifs en cas de redémarrage, revient après 3 à 5 jours (ASP.NET)
Pour quelque raison que tous les 3-5 jours notre web app perd la capacité à ouvrir une connexion à la db avec l'erreur suivante, la chose étrange est que tout ce que nous avons à faire est de redémarrer le conteneur (c'est un VPS) et il est restauré à la normale de la fonctionnalité. Puis, quelques jours plus tard, ou si cela arrive de nouveau. Quelqu'un a déjà eu un tel problème? J'ai remarqué que beaucoup de connexions ANONYMES dans le journal de sécurité dans le milieu de la nuit à partir de notre serveur PUBLICITAIRE qui est étrange, et aussi un peu à partir d'une IP à Amsterdam. Je ne suis pas sûr de la façon de dire exactement ce qu'ils signifient, ou si c'est lié ou pas.
Server Error in '/ntsb' Application.
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
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: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Source Error:
Line 11:
Line 12:
Line 13: dbConnection.Open()
Line 14:
Line 15:
Source File: C:\Inetpub\wwwroot\includes\connection.ascx Line: 13
Stack Trace:
[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +248
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +245
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +475
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +260
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +2445449
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +2445144
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +354
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +703
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +54
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +2414696
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +92
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1657
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +84
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +1645687
System.Data.SqlClient.SqlConnection.Open() +258
ASP.includes_connection_ascx.getConnection() in C:\Inetpub\wwwroot\includes\connection.ascx:13
ASP.default_aspx.Page_Load(Object sender, EventArgs e) in C:\Inetpub\wwwroot\Default.aspx:16
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
System.Web.UI.Control.OnLoad(EventArgs e) +132
System.Web.UI.Control.LoadRecursive() +66
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
Bonne idée, je vais essayer ça la prochaine fois qu'il se passe.
J'ai exactement le même problème. Le site fonctionne parfaitement sur notre production (non-VPS), mais il a récemment commencé de façon sporadique nous donnant ces erreurs sur notre mise en scène (VPS). Je me dis que ça doit être une sorte de problème de ressource que le problème est intermittent et un redémarrage semble pour le fixer pendant un certain temps. Avez-vous jamais celui-ci?
OriginalL'auteur MetaGuru | 2009-01-09
Vous devez vous connecter pour publier un commentaire.
Le nombre de connexions à sql server est une ressource finie. Il semble que vous avez le code quelque part qui n'est pas la fermeture de la connexion correctement, et après une période, vous ne pouvez pas ouvrir plus de nouvelles.
C'est intéressant, je vais vérifier sur une telle chose. Cependant nous avons eu cette web application qui s'exécute sur un serveur précédent et n'a jamais eu ce problème, c'est seulement après que nous avons migré vers ce nouveau serveur virtuel que le problème a commencé. Donc, je pense que ce n'est pas que...
Il pourrait être que si, peut-être vous avez moins de ressources.
OriginalL'auteur Joel Coehoorn
Nous avons récemment été confrontés à un problème similaire dans notre environnement de production, et après de nombreux tours de "debugdiag"ging et d'analyser les dumps nous en sommes venus à la conclusion qu'une grande partie fragmentée des objets volumineux a été à l'origine de ce. Ref http://msdn.microsoft.com/en-us/magazine/cc534993.aspx. En bref, votre application peut manquer de mémoire et n'ont pas assez de contiguos d'espace à gauche pour ouvrir les connexions. Vous pouvez utiliser VMMap http://technet.microsoft.com/en-us/sysinternals/dd535533 pour les fins de l'identification de l'espace libre disponible. Êtes-vous le recyclage de vos AppPools régulièrement? AppPool recycler les larmes de l'application et libère de toute aide mémoire par conséquent, résout toutes les questions connexes.
OriginalL'auteur Chayan
Avez-vous essayé de recueillir des renseignements de base avec perfmon et profiler (trace) pour voir comment de nombreuses connexions sont établies, mémoire de stats et d'autres choses intéressantes?
OK j'ai essayé de perfmon et il a ouvert mais il n'y avait pas de journaux disponibles.
Avez-vous accès à SQL Management Studio? msdn.microsoft.com/en-us/library/ms187929.aspx je ne suis pas familier de ce que les capacités que vous avez dans un vps situation. Perfmon - pas de journaux disponibles? Tu veux dire pas de compteurs à choisir?
OriginalL'auteur Sam
" J'ai remarqué que beaucoup de connexions ANONYMES dans le journal de sécurité dans le milieu de la nuit à partir de notre serveur PUBLICITAIRE qui est étrange, et aussi un peu à partir d'une IP à Amsterdam."
Sons comme si vous pourriez peut-être avoir quelqu'un qui essaie de s'introduire dans votre système et peut-être que ce sont les connexions qui ne sont pas de clôture. J'aime la suggestion de l'aide de l'analyseur de performances et de profils pour voir le problème.
OriginalL'auteur HLGEM