5

私はSQL Server 2000のバックエンドとVS 2010でのASP.NETアプリケーションを開発しています(私は私が知っている、知っている。。。)SQL Server 2000接続エラー - ログイン前のハンドシェイク?

私は最後の3の大部分のために、この設定でうまく働いています月。しかし、昨日、私はVS 2010 SP1を適用しなかったし、今、このデータベースに接続すると、次のエラーが発生します。

Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=72; handshake=44924

私は、接続文字列またはSQL Server 2000サーバー/データベースのいずれかに変更はありませんので注意してください。だから、新たに追加されてからそれが起こっている理由がなければならない。

私の接続項目はかなり

conn.Open(); 
SqlCommand cmd = new SqlCommand(); 
cmd.Connection = conn; 
cmd.CommandText = sqlStatement; 
SqlDataReader dr = cmd.ExecuteReader(); 
resultData.Load(dr); 
dr.Close(); 
conn.Close(); 

とバニラですそして、私の接続文字列が

Data Source=192.168.1.200;Persist Security Info=false;Initial Catalog=MyDB;User Id=MyUser;Password=MyPW;Timeout=45; 

のように見えるあなたは、私がタイムアウトに変更を加えたが、これは動作しませんでしたことがわかります。しかし、再び、私は何も変更する必要はありません。私はVS 2010 SP 1を昨日適用しました。これは唯一の変更です。助けて!

+1

[この](http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not- open-a-connection-to-sql-server-microsoft-sql-server-error /#comment-82996)? –

+0

すばらしい提案。その答えは、これらの行に沿ったものでなければなりません。これは、これを引き起こしているローカルクライアントの変更でなければなりません。しかし、私はこれらの変更を行い、問題を解決しませんでした。 –

+0

リンク 以下を参照しhttp://serverfault.com/questions/423013/sql-an-error-occurred-during-the-pre-login-handshake/423087 –

答えて

6

サーバーのファイアウォールでポート1433(SQL)を開くことでこれを解決しました。

+0

グレート回答!!!!!!!! ! – Eric

1

私はあなたと同じ問題がありました。ファイアウォール内のSQLクライアントとSQLホスト間の接続を許可することで、この問題を解決しました。また、ポート1433へのアクセスを許可することもできます。これは、特にSQL Serverで使用されます。