そのようなフレーズに注意する必要があることはわかっていますが、突然、localhost\sqlexpress
へのすべての接続が機能しなくなりました。 .\sqlexpress
と(local)\sqlexpress
が機能するので、すべての接続文字列が前者の形式で定義されているチームプロジェクトに取り組んでいるという事実がなければ、これは大したことではありません。そして明らかに、それがもう機能しないことを受け入れるのに苦労しているので、いくつかのSQLServerバージョンの分析と再インストールに数時間を費やしました。 (そして、VS2010でdbプロジェクトを壊す途中なので、私も再インストールする必要がありました...)。
しかし、ここに詳細があります。すでに述べたように、私はlocalhost\sqlexpress
に接続できませんでしたが、.\sqlexpress
に接続できました。 SQL Server Managerを使用した場合の同じ症状、およびwcfサービスの展開と実行のための接続文字列。おかしなことに、localhost
が機能するようにデフォルトインスタンスを解決します。
まず最初に、はい、SQL Serverが実行されています。念のため、TCP/IPを有効にして、ポートを1433に固定しましたが、TCP/IPが無効になっている同僚のマシンでは機能します。 (私が読んだ途中のどこかで、ネイティブSQLクライアントを使用するときに共有メモリを使用してlocalhost
を解決できるので、それが彼のシステムで起こっていることだと思います。)
セットアップは、Windows 7Professional上の1つのSQLServer Express 2008R2インスタンスとVS2010のみです。
SQL Expressを起動するとエラーログが表示されます:
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Netstatによると(抜粋):
TCP 0.0.0.0:1433 Machinenename:0 LISTENING
TCP [::]:1433 Machinenename:0 LISTENING
ポート1433に127.0.0.1:1433とUDPがないことに注意してください
問題を診断するために、sqlcmdを使用して使用されているトランスポートを調べます。
1。localhost\sqlexpress
sqlcmd -Slocalhost\sqlexpress -> Shared memory
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
プロトコルとして共有メモリを指定しても、SQL Server ManagementStudioからlocalhost\sqlexpressに接続できません
2。localhost
sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP
SQL Server ManagementStudioからローカルホストに接続できます
.(ローカル)\ sqlexpress
sqlcmd -S(local)\sqlexpress -> Shared memory
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
SQL Server Management Studioから(ローカル)\ sqlexpressに接続できます
だから私はここで迷子になっています。どんな助けでも大歓迎です。
mS SQLで、[構成ツール]-> [SQLServer構成マネージャー]に移動します。[SQLServerネットワーク構成]を選択します->右側のウィンドウでプロトコルを選択してtcp/ipを有効にし、services.mscでサービスを再起動してから、localhost\sqlexpressへの接続を試みます。
SQLServer構成マネージャーの[SQLServerネットワーク構成] | [共有メモリ]で共有メモリが有効になっていることを確認しましたか。プロトコル?
「共有メモリ」プロトコルを無効にすると、「sqlcmd-S。\ sqlexpress」がタイムアウトします。これを有効にすると、コマンドは正常に機能します。
もう1つ考えてみましょう...ポート1434はSQLServer Discoveryサービスに使用されます。これにより、SQL ManagementStudioなどのプログラムはSQLServerがマシン上で実行されていることを検出できます。調査することがもう1つあります。
この問題が発生しました。何らかの理由で、このマシンでは、使用していたサーバー名(localhost\SQL2008_R2)をもう存在しないサーバーに転送するエイリアスが作成されていました。
エイリアスを削除すると、すべて機能しました。
エイリアスは、SQLServer構成マネージャーのツリーノードです。