3

何らかの理由で 3 ~ 5 日ごとに、次のエラーが発生して Web アプリがデータベースへの接続を開くことができなくなります。奇妙なことは、コンテナー (VPS) を再起動するだけで復元できることです。通常の機能に。それから数日後か、それは再び起こります。誰もそのような問題を抱えたことがありますか?真夜中にセキュリティ ログに多数の ANONYMOUS LOGON があることに気付きましたが、これは奇妙であり、アムステルダムの IP からのものもあります。それらが何を意味するのか、または関連しているかどうかを正確に伝える方法がわかりません。

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 
4

4 に答える 4

2

SQL Server への許可される接続数は固定リソースです。接続を正しく閉じていないコードがどこかにあるようで、しばらくすると新しい接続を開くことができなくなります。

于 2009-01-09T17:06:33.853 に答える
1

最近、本番環境で同様の問題に直面し、ダンプの「debugdiag」と分析を何度も繰り返した後、大部分が断片化された大きなオブジェクトヒープがこれを引き起こしているという結論に達しました。参照http://msdn.microsoft.com/en-us/magazine/cc534993.aspx。つまり、アプリケーションのメモリが不足していて、接続を開くのに十分な連続スペースが残っていない可能性があります。使用可能な空き領域を特定する目的で、VMMaphttp://technet.microsoft.com/en-us/sysinternals/dd535533を使用できます。AppPoolsを定期的にリサイクルしていますか?AppPoolリサイクルは、アプリケーションを破棄し、ヘルプメモリを解放するため、関連する問題を解決します。

于 2011-07-19T15:52:39.657 に答える
0

「奇妙なことに、真夜中にセキュリティ ログに多数の ANONYMOUS LOGON が記録されていることに気付きました。これは奇妙で、アムステルダムの IP からのものもあります。」

誰かがあなたのシステムに侵入しようとしている可能性があるように聞こえますが、おそらくこれらは閉じられていない接続です. perfmon と profiler を使用して問題を確認するという提案が気に入っています。

于 2009-01-09T19:19:04.943 に答える
0

perfmon とプロファイラー (トレース) を使用して基本情報を収集し、接続数、メモリ統計、その他の興味深い情報を収集してみましたか?

于 2009-01-09T17:01:45.750 に答える