7

本番環境では奇妙なエラーが発生しますが、開発環境では発生しません。私の開発環境では、Visual Studio 2010 を使用して、Sql Server 2012 に問題なく接続できます。Windows フォーム アプリを同じネットワーク内の他の PC にコピーすると、"エラー 26: サーバー/インスタンスの指定エラー" が表示されます。

同じアプリケーションが、Sql Server 2008 の古いデータベース インスタンスでうまく機能しました。何を確認し、どこから始めればよいかわかりません。

編集:別の奇妙な動作は、このようなコードを使用するとうまく機能することです

conn.Open()

dr = cmd.ExecuteReader()

しかし、datagridview、データセット、および BindingSource を含むフォームを開くと、動作が停止します。

4

1 に答える 1

6

このブログ投稿には、エラー 26 に関する詳細情報が記載されています。

投稿から:

つまり、このエラー メッセージが表示される理由は、クライアント スタックが SQL Browser からの SSRP 応答 UDP パケットを受信できなかったためです。問題を切り分けるのは簡単です。手順は次のとおりです。

  1. サーバー名が正しいことを確認してください。たとえば、名前にタイプミスがないことを確認してください。
  2. インスタンス名が正しいこと、およびターゲット マシンに実際にそのようなインスタンスがあることを確認してください。[更新: 一部のアプリケーションは \ を に変換します。アプリケーションが不明な場合は、接続文字列で Server\Instance と Server\\Instance の両方を試してください]
  3. サーバー マシンが到達可能であることを確認してください。たとえば、DNS が正しく解決されていること、サーバーに ping を実行できることなどです (常に正しいとは限りません)。
  4. サーバーで SQL Browser サービスが実行されていることを確認します。
  5. サーバーでファイアウォールが有効になっている場合は、sqlbrowser.exe および/または UDP ポート 1434 を例外にする必要があります。

手順を完了すると、このエラー メッセージは表示されなくなります。SQL サーバーへの接続にまだ失敗する場合がありますが、エラー メッセージは異なるはずであり、別の問題が発生しています。[更新: それでも失敗する場合は、server\instance を tcp:server\instance および/または np:server\instance に置き換えて、TCP または NP プロトコルで成功するかどうかを確認してください。そうすれば、問題を少し切り分けることができます。]

于 2012-11-15T16:00:24.363 に答える