web-dev-qa-db-ja.com

SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー

まあ私は解決するために何日もしようとしている大きな問題を抱えていますが、それを行うことができなかったので、私はあなたの助けが必要です。 asp.net 4.0には、カスタムメンバーシップとロールプロバイダーを実装したWebアプリケーションがあります。アプリのホームページを開くと、データベースに接続して情報を取得します。ログインフォームもあり、ログインするとデータベースを介してユーザーが検証され、予約ページにリダイレクトされますが、このエラーは表示されません:

SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの特定エラー)

説明:

現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコードのどこで発生したかについては、スタックトレースを確認してください。

例外の詳細:

System.Data.SqlClient.SqlException:SQL Serverへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの特定エラー)

ソースエラー:

現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタックトレースを使用して特定できます。

私は多くのことを試しましたが、いくつかの解決策が見つかりました スタックオーバーフロー しかし、何もうまくいきませんでした。私の接続文字列は次のとおりです。

<connectionStrings>
  <clear/>
  <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient" />
     <add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>

以下は、メンバーシップおよびロールマネージャーのweb.configセクションでもあります。

<membership defaultProvider="AuthProvider">
  <providers>
    <clear/>
      <add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear/>
      <add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
  </providers>
</roleManager>

誰が間違っているのかを理解するのを手伝ってください

32
ivi.hamiti

WindowsマシンAからWindowsマシンB(SQL Serverがインストールされたサーバー)に接続していて、このエラーが発生している場合は、次を実行する必要があります。

マシンBで:

1.)「SQL Server Browser」と呼ばれるWindowsサービスをオンにして、サービスを開始します

2.)Windowsファイアウォールで、受信ポートUDP 1434を有効にします(マシンAのSQL Server Management Studioが接続している場合、またはマシンAのプログラムが接続している場合)

3.)Windowsファイアウォールで、着信ポートTCP 1433を有効にします(Telnet接続がある場合)

4.)SQL Server構成マネージャーで、ポート1433のTCP/IPプロトコルを有効にします

enter image description here

44
MacGyver

私にとって問題は、DNSレコードが間違っていたことでした...

非常に有用であることが証明された以下は、主に このブログ投稿 から引用されています。

このエラーメッセージは実際にはかなり具体的であり、解決策は非常に簡単です。

このエラーメッセージは、インスタンスのSQL Serverに接続しようとしている場合にのみ表示されます。デフォルトのインスタンスでは、この段階でエラーが発生した場合(つまり、サーバー/インスタンスの特定エラー)でも、デフォルト値(デフォルトTCPポート1433、default名前付きパイプのパイプ名。

クライアントがインスタンスという名前のSQL Serverに接続するたびに、SSRP UDPパケットをサーバーマシンのUDPポート1434に送信します。SQLインスタンスの構成情報(プロトコルが有効になっている、TCPポート、パイプ名など。この情報がないと、クライアントは接続方法を認識せず、このエラーメッセージで失敗します。

つまり、このエラーメッセージが表示される理由は、クライアントスタックがSQL BrowserからSSRP応答UDPパケットを受信できなかったためです。正確な問題を特定するには、次の手順を実行します。

  1. サーバー名が正しいことを確認します。たとえば、名前にタイプミスがないことを確認します。

  2. インスタンス名が正しいこと、および実際にターゲットマシンにそのようなインスタンスがあることを確認してください。 (一部のアプリケーションは\をに変換することに注意してください)。

  3. サーバーマシンが到達可能であることを確認してください。たとえば、DNSが正しく解決できること、サーバーにpingできることを確認してください(常にtrueとは限りません)。

  4. サーバーでSQL Browserサービスが実行されていることを確認します。

  5. サーバーでファイアウォールが有効になっている場合は、sqlbrowser.exeまたはUDPポート1434を例外に設定する必要があります。

手順1〜4をチェックした後でも失敗する可能性のある、1つのコーナーケースがあります。

  1. サーバーはクラスターまたはマルチホームマシン上の名前付きインスタンスです
  2. クライアントは、ファイアウォールがオンになっているVistaマシンです。

有用であると証明できるツールは( PortQry )。このコマンドが情報を返し、ターゲットインスタンスが含まれている場合、上記の可能性4)および5)を除外できます。つまり、SQLブラウザーが実行されており、ファイアウォールがSQLブラウザーUDPパケットをブロックしません。この場合、接続文字列が正しくないなど、他の考えられる問題を確認できます。

最後の注意として、SNACを使用する場合の同じ問題のエラーメッセージは次のとおりです。[SQL Native Client] SQLネットワークインターフェイス:指定されたサーバー/インスタンスの特定エラー[xFFFFFFFF]。

マイクロソフトは最近、SQL Serverへの接続の問題の大半をトラブルシューティングするワンストップショップとして機能するガイド付きウォークスルーをリリースしました。 SQL Serverへの接続エラーの解決

18
Paul Zahra

答えはエラーメッセージ自体にあります。

Error Locating Server/Instance Specified

基本的に、接続文字列に間違ったserver\instanceがあります。つまり、次のビットです。

Data Source=MSSQL2008-1

が間違っていてサーバーを指していないか、サーバー名がIPアドレスに解決されません。他の2つの可能性:(1)SQL Serverを実行しているボックスのSQL Browserサービスが実行されていないか、(2)SQLボックスのWindowsファイアウォール(またはその他のファイアウォール)が着信接続を拒否しています。

最終的に、サーバー名が正しい場合、それはネットワークの問題に変わり、クライアントがサーバーに接続できない理由を見つける必要があります(これはSQL Server構成の問題よりも基本的なネットワークの問題である可能性が高いです) 。

7
Chris J

ASP.NET MVC 4アプリケーションで同じ問題が発生していました。

私がそれを解決したのは、DatabaseContextでした。接続文字列の名前を渡すことにより、ベースコンストラクターで使用したいと思いました。

public class DatabaseContext : DbContext
{ 
    public DatabaseContext()
        : base("DefaultConnection") // <-- this is what i added.
    {
    }

    public DbSet<SomeModel> SomeModels { get; set; }
}
7
Kristian Nissen

Window + Rに移動し、services.mscと入力してEnterキーを押します。

次に、自動的に開始されない場合は、SQLサーバーを手動で開始します。

次に、ログインしようとしますが、動作するはずです。

4
Venkatesh K

。\ SQLEXPRESSを変更し、SQLエクスプレス名のみを追加してください。

 <add name="BlogDbContext" connectionString="data source=your name here; initial catalog=CodeFirstDemo; integrated security=True" providerName="System.Data.SqlClient"/>

同じエラーが発生し、SQL Server Expressサービスを開始しましたが、うまくいきました。お役に立てれば。

2
Hưng Ngô

私はこの問題を抱えており、それを修正しました。問題はこれであるように見えました:

違う:

<add key="aaa" value="server=[abc\SQL2K8];database=bbb;uid=ccc;password=ddd;" />

<add key="aaa" value="server=abc\SQL2K8;database=bbb;uid=ccc;password=ddd;" />
1
Ash

私の場合、サービスを検索しました。次に、「SQL Server(SQLEXPRESS)」というサービスを見つけました。それを右クリックします。プロパティを選択します。次に、「開始」をクリックします。これで問題は解決しました。

1

最近、同じ問題が発生しました。コードはmachine.confgファイルで「LocalSqlServer」という名前の接続文字列を探していることがわかりました。この行を追加し、正常に機能しています。

1
NathanPillai

この問題は、ホスト名の解決に失敗したDNSが原因です。 「コンピューター名」の代わりにIPアドレスを使用してみてください。

1
user5362299

私のインスタンスでは、web.configファイルのconnectionStringの名前のスペルが間違っています。これは、Entity Frameworkが使用するデータベースコンテキストの名前です。これは、EFがconnectionString名とコンテキストを照合できない場合に発生するエラーだと思います。

1
RMuesi

私のASP.NET MVCプロジェクトの1つで、この問題は私を幸運にも実稼働環境ではなく私のマシンで問題にしていたので、web.configを比較してエラーが消えたことを削除しました...本当の挑戦SQL Serverエラー26をこの問題に接続します

0
David

SQL ServerのDeveloper Editionを使用している場合は、接続文字列の「。\ SQLEXPRESS」をコンピューター名に変更します。

前:

データソース=。\ SQLEXPRESS;初期カタログ= SchoolDB-EF6CodeFirst;統合セキュリティ= True; MultipleActiveResultSets = True

後:

データソース= DESKTOP-DKV41G2;初期カタログ= SchoolDB-EF6CodeFirst;統合セキュリティ= True; MultipleActiveResultSets = True

0
emert117

同じ問題。私の場合、プロジェクトを「スタートアッププロジェクト」として設定することを解決しました。

0
Antonio Santise