2011-01-18 7 views
4

としてSQL Serverインスタンスを構成する開発チームの各メンバには、SQL Server 2008 Enterprise SP1のローカルバージョンで実行されているアプリケーションデータベースのコピーがあります。誰もがweb.configファイルでサーバー名とインスタンス名を指定することでデータベースにアクセスできますが、web.configファイルの開発者バージョンを最もよく共有するために、統合セキュリティと設定サーバーを使用して接続文字列を汎用化することを標準化していますプロパティを(ローカル)に設定します。この戦略は、64ビットWindows 7マシンの大半でうまくいきますが、ほとんどの場合(ローカル)認識されません。 SQL Server Configuration Managerを使用して設定を比較しています(つまり、名前付きパイププロトコルが有効になっていることを確認しています)。SQL Serverクライアントネットワークユーティリティを使用して "(ローカル)"エイリアスを設定しようとしましたが、私たちの接続文字列で(ローカル)を使用するためには何をする必要がありますか?(ローカル)

+0

これらのコンピュータには、複数のSQL Serverエンジンが実行されていますか(たとえば、Express Editionとエンタープライズ版の両方)?そのような場合は、インスタンス名も指定する必要があります。 – Oded

+0

私は '(ローカル)'は常に共有メモリを使用すると考えました。 –

+0

@マーティン - どういう意味ですか? – Oded

答えて

10

インスタンスのパイプ名を "\。\ pipe \ sql \ query"に変更しようとしています。

SQL Server Configuration Managerを起動し、SQL Serverネットワーク構成>プロトコル(インスタンス名)に移動し、名前付きパイプを右クリックして[プロパティ]を選択することで、この設定を見つけることができます。 Named Pipesが有効になっていない場合は、SQL Serverサービスを再起動する前に有効にしてください(@NoahHeldmanのコメントを参照)。

既定のインスタンス(インスタンス名なし)に接続すると、SQL Serverは既定のポート1433と既定のパイプ名 "\。\ pipe \ sql \ query"を使用します。それを一致に戻すように変更すると(願わくば)修正する必要があります。

+0

それがそれでした。助けてくれてありがとう、Geoff。あなたはすでに私の本のSOに歓迎されています。 –

+0

私はマシン上で同じ問題を抱えていて、それも私のために働いていました。ありがとう! –

+3

これらの同じ手順を試してみましたが、「サーバー名パイププロバイダーが[\\。\ pipe \ sql \ query]でリッスンできませんでした」などのSQL Serverサービスを開始しようとすると、 。これは、サービスを開始しようとしたときにNamed Pipesが無効になったために起こりました。修正するには、パイプ名フィールド(\\。\ pipe \ mssql $ \ sql \ queryのようなもの)に古い値を戻し、サービスを開始および停止してから\\。\ pipe \ sql \ queryを実行して、サービスを再開します。少なくとも、それは私のために働いた... –

2

(ローカル)としてデータベース接続が動作しないマシンは、おそらくデータベースインストール時にインスタンス名がデフォルトの "default instance"ではなく特定のものに設定されているためです。これらのインスタンス名を変更すると、この問題を解決できる場合があります。http://coderjournal.com/2008/02/how-to-change-instance-name-of-sql-server/

これは、SQL Server Expressが既にインストールされ、実行されている状態でSQL Server Developer Edition/Standard/etc ...をインストールしたときに発生すると思いますが、100%確かではありませんが、場合。

+0

実際には私はちょうどそれが動作するかもしれないと思っています –

+0

良い提案。私はインスタンス名を変更しようとしましたが、それはそれをしませんでした。私は現時点で後者のコメントに傾いています。稼働中のマシンでは、Expressがインストールされていないか、完全版のSQLの後にインストールされていると考えられます。 –