SQL Serverへの接続中にエラーが発生しました:
スタックトレースの詳細は次のとおりです。
===================================
Cannot connect to ServerName.
===================================
A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476
------------------------------
Server Name: ServerName
Error Number: 233
Severity: 20
State: 0
------------------------------
Program Location:
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String Host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
NOTE試してみました
sQL Server Management Studioを閉じて再度開きます。
クローズ、VSの再オープン、ソリューションの再構築
データベースにアクセスしているワーカープロセスを強制終了しました。
ログイン資格情報が正しい。
サーバーをpingして、ダウンしていないことを確認できます。
サーバー上で何らかのSQLサービスが何らかの形で停止したことが判明しました。解決策は、SQL Serverサービスを手動で再起動することでした。
私はこれが愚かであることを知っているが、とにかく働いた。有用なコメントをありがとう@PareshJ。
SQL2008の場合、
構成マネージャーを使用してサーバーを再始動します。
ここ から:
根本的な原因:SQL Serverインスタンスで最大接続を超えました。
修正方法...!
- F8またはオブジェクトエクスプローラー
- [インスタンス]を右クリックし、[プロパティ]をクリックします。
- 左側の「ページを選択」エリアで「接続」を選択します
- 「同時接続の最大数(0 =無制限)」の値を0(ゼロ)に変更します。
- SQL Serverインスタンスを1回再起動します。
それとは別に、以下が有効になっていることも確認してください。
.NETコードをx64アプリケーションとして実行しているSqlConnection.Open()
を含むコード行にエラーメッセージが表示されました。 x86として実行するとエラーは発生しません。
解決策は、Force protocol encryption
でTCP/IPの%windir%\System32\cliconfg.exe
オプションを無効にすることでした
ここでのSQL 2016ソリューション/回避策(以前のバージョンでも機能する可能性があります)。これはすべての状況で機能しないか、適切ではないかもしれませんが、SSMSでデータベースユーザーに読み取り/書き込みスキーマ所有権を付与することでエラーを解決しました。
[データベース]> [セキュリティ]> [ユーザー]> [ユーザー]> [プロパティ]> [所有スキーマ]> db_datareaderおよびdb_datawriterを確認します。
(デフォルトではなく)データベースを指定すると、このエラーが解決する場合があります。