SQL Server ManagementStudioからTCP/IPに接続しようとすると、次のエラーが発生します。問題を解決するには、段階的な説明が必要です。ここで何が問題になっていますか?
Cannot connect to
===================================
A network related or instance specific error when a connection to SQL Server...
(provider: Named pipe-provider, error: 40 - SQL Server)
(.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=53&LinkId=20476
------------------------------
Error Number: 53
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.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
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.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci, IServerType server)
at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
私がいつも忘れているのは、SQLServerNetwork-> Protocols for MSSQLServerでtcpを有効としてマークした場合でも、サーバーで異なる可能性のあるIPアドレスを有効にする必要があるということです。単一のNICを持つサーバーでさえ、複数のIPアドレスを持ちます。
SQL Serverネットワーク構成を確認する場合(Start Menu > Microsoft SQL Server > Configuration Tools > SQL Server Configuration Manager > SQL Server Network Configuration
)、何が見えますか?
サーバーでTCP/IPプロトコルが本当に有効になっていますか?デフォルトではオフになっており、ほとんどの場合はオフのままです(特にオンにしない限り)。
IPベースのサーバーアドレスを使用するだけでは、TCP/IPプロトコルを使用して接続しているわけではありません。.. http://www.connectionstrings.com/sql-server-2008willがTCP/IPを使用するサンプル接続文字列:
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
重要なのはNetwork Library=DBMSSOCN;
TCP/IPを使用して接続するようにコードに指示します。
TCP/IP接続がこのサービスを使用するため、SQLServerブラウザサービスが実行されていることも確認する価値があります。
Www.connectionstrings.comをご覧ください。エラーメッセージは、tcp/ipではなく、名前付きパイプを使用しているようです。 SQL ServerのサーバーマシンでTCP/IPを明示的に有効にする必要があることを忘れないでください。
これを構成するための優れたウォークスルーがあります。
サーバーがTCP/IP経由の接続を受け入れるように設定されていることを200%確信していますか?
これに従ってください:
[スタート]-> [プログラム]-> [Microsoft SQL Server 2008]-> [構成ツール]-> [SQLServer構成マネージャー]
SQLServerネットワーク構成-> [SQLInstanceName]のプロトコル
TCP/IPを右クリック->有効にする
TCP/IPがすでに有効になっている場合は、ファイアウォールが接続をブロックしているようです。関連するポートを開くと、機能するはずです。
接続の両端のファイアウォールを確認する必要があります。