SQL Serverデータベースに接続できません

私は現在asp.net C#を使用してWebアプリケーションを開発しています。私は今日私がいたサーバーを手に入れました 私のウェブサイトとそのデータベースを公開する予定です。 Windows Server 2008 R2を実行するサーバーです。

しかし、私は1つの問題があります:

私のウェブサイトはデータベースにアクセスできない。ローカルネットワーク上の別のコンピュータからWebサイトを実行すると、サーバーのデータベースにアクセスできますが、データベースがあるサーバーと同じサーバーからWebサイトを実行するとアクセスできません。これは本当に奇妙です。私は誰かが助けることを望む。

私はちょうどそれがデータベースにアクセスすることはできないと言うエラーを取得します。

最も奇妙なのは、両方のコンピュータで同じ接続文字列を使用しているということですが、それでも動作しません。 Windows Server 2008に何らかの設定がありますか?

ここに私の接続文字列があります:


5
私は sa アカウントを使用してプロダクションでSQL Serverにログインするのではなく、本当に本当に願っていますか?
追加された 著者 marc_s,
実際の例外メッセージを確認してください。
追加された 著者 Andrey,
接続文字列のサーバー名を localhost またはに変更すると、サーバー上で動作しますか?
追加された 著者 hawkke,
いいえ:/それはそれをしなかった
追加された 著者 parek,

4 答え

接続は1台のマシンで動作し、別のマシンでは動作しないので、ファイアウォールなどの問題があると思いますが、実際のエラーメッセージが表示されるまではわかりにくいでしょう。それまでは、あなたがやりたいことがいくつかあります:

  • If it appears as if the connection has to time out before you get the error, it indicates a connectivity problem. Do you have a firewall between the two servers? Does the database server have a firewall that explicitly lets your machine (or internal) machines get through, but hasn't been setup to let the webserver get through? You have to make sure that port 1433 is open on the server.

  • Are there other sites on the webserver that can connect to the database?

  • If you have console access to the server, try to set up an ODBC from the server to the database - usually in Control Panel -> Data Sources (ODBC). If you set up a connection with the same DB Server, username and password and test the connection, you might get some pointers to what is wrong.

上記で回答が得られない場合は、ここで説明している手順を実行します。

http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named- pipe-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

And if that fails, take a look at this - which is apparently only valid when you get SQL Network Interfaces, error: 26

http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx

2
追加された
どのようなエラーメッセージが表示されますか?正確な言葉ですか?
追加された 著者 user806549,
そして、あなたの接続はどこで失敗しますか?あなたが接続を開くときに、それを使って何かをしようとすると...?
追加された 著者 user806549,
追加された 著者 user806549,
OK。だから私はまだ正確なエラーメッセージを見る必要があります。
追加された 著者 user806549,
データベースサーバーが新しく構成/インストールされていますか?他のウェブサイトに接続していることは承知していますか?答えの最初の点を確認しましたか? (つまり、DBサーバー自体のファイアウォールをチェックしています)。
追加された 著者 user806549,
SQL Serverへの接続を確立する際に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認します。 (プロバイダー:SQLネットワークインターフェース、エラー:26 - 指定されたサーバー/インスタンスの指定エラー)
追加された 著者 parek,
問題は解決しました、ありがとう!
追加された 著者 parek,
そうです!しかし、私はそれが別のコンピュータからローカルで動作するとき、同じコンピュータから接続しようとすると、ファイアウォールがどのように問題を起こすのか分かりません。しかし、はい、ファイアウォールもオフになっている
追加された 著者 parek,
チャットでこれを続けることはできますか?
追加された 著者 parek,
未処理の例外が、現在のWeb要求の実行中に生成されました。以下の例外スタックトレースを使用して、例外の起点および場所に関する情報を識別できます。
追加された 著者 parek,
私が接続を開くときに
追加された 著者 parek,
私はODBCでテスト接続を行い、それはhahaを働いたが、データベースへの私のウェブサイトの接続は機能しません...
追加された 著者 parek,

おそらく許可の問題です。
接続文字列を表示する必要があるので、データベースへの接続の正確性を確認することができます。

たとえば、Windows認証を使用している場合、両方のマシンの異なるアカウントでアプリが実行され、データベースにアクセスする権限が他のコンピュータのあるない。

1
追加された
更新された接続文字列の質問を確認してください
追加された 著者 parek,

これは、Windows認証を使用していない場合、またはChristian Spechtの権限についての記事を読んでいる場合にのみ該当します。この場合、私は同意します。

ネットワーク上の別のPCから接続できるということは、すべてのデータベース設定、ユーザーアカウント、およびアクセス許可が正しく設定されている可能性があることを意味します。

ローカルホストを解決する方法に問題があるようですが、AXELS = localhostがそのマシン上にあるため、ローカルホストにデータソースを解決しようとします。

ホストファイルを見て、デフォルト以外の面白いポインタがあるかどうかを確認してください。

C:\ Windows \ System32 \ drivers \ etcにあります

エントリがあるはずです:127.0.0.1 localhost

0
追加された
Windows認証を使用しているかどうか確認できますか?その場合、あなたのウェブサイトは、DBNETへのアクセスを許可していないサーバー上でASPNETユーザーを使用している可能性があります。これは、ネットワークアカウントを使用しているか、アクセス可能な別のサービスアカウントを使用しているため、リモートで接続できる理由を説明します。
追加された 著者 Charl,
私はホストファイルをチェックしました。いいね。
追加された 著者 parek,

使用しているプロトコルがSQL Server上で有効になっているかどうか確認しましたか?

C:\ Windows \ System32 \ cliconfg.exe - 64ビット版

C:\ Windows \ SysWOW64 \ cliconfg.exe - 32ビット版

SQL Server Configuration Managerの[SQL Server Native Client *]タブを確認してください。

0
追加された
私は自分の他のローカルPCからデータベースに接続できるので、私はいくつかの種類のプロトコル問題
追加された 著者 parek,
SQL Server上でプロトコルが有効になっていない場合は、そのプロトコルをローカルに使用することはできません。 cliconfgは各マシンに対してローカルです。
追加された 著者 KevinNicholas,