2017-09-29 10 views
0

正常に動作していたプロジェクトを移動しましたが、今はデータベースにアクセスできなくなりました。 Entity Frameworkを使用し、SQL Server 2012のデータベースに正常に接続しました。ここに私の接続文字列は次のようになります。私はウェブサイトを起動するとASP.NET MVCでSQLExceptionを接続できません

<connectionStrings> 
    <add name="PrincipalServerContext" 
     connectionString="Data Source=ServerName\SQLEXPRESS;Initial Catalog=PrincipalServerDB;Integrated Security=True" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

、認証後に私がデータを取り出すが、それは、私はそれはいくつかのことをしなければならないかもしれないと考えている例外

System.Data.SqlClient.SqlException

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

をスローしますしかし、わからない、とそれらを修正する方法がわからない:

  1. SQL Serverでのユーザー権限
  2. 接続文字列が間違っている可能性があり、B私は何百回もチェックして再チェックしました

このように動作させることはできませんでしたが、例外はLinqクエリでDBにアクセスすることができません。

EDIT私がテストするためにウェブサイトを公開しようと、第二の接続文字列を持っていた:

<connectionStrings> 
    <add name="PrincipalServerContext_DatabasePublish" 
     connectionString="Data Source=ServerName\SQLEXPRESS;Initial Catalog=PrincipalServerDB;Integrated Security=True" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

私はちょうど私がプロジェクトをセットアップ新しいコンピュータ上でデバッグしようとしているものの、この行を削除すると例外があります。だから私のプログラムは、このDBを探して何も見つけませんか?

System.InvalidOperationException cannot find PrincipalServerContext_DatabasePublish connection string

(私はフランス語からの翻訳)

+1

どこから移動しましたか?統合セキュリティを使用しているので、アプリケーションを実行しているWindowsアカウントからデータベースへのアクセス権があることを確認してください。 – benjrb

+1

あなたのユーザーアカウントはそのデータベースにアクセスできますか? '統合セキュリティ'のために問題が発生する可能性が高い –

+1

'PrinciparlServerContext_DatabasePublish'は' PrincipalServerContext_DatabasePublish'と同じではありません。タイプ-o – Igor

答えて

0

それはおそらく、ユーザーのアクセス許可とは関係ありません。むしろ、プロジェクトを移動した新しいサーバーは、SQL Serverが配置されているサーバーにアクセスできません。

新しいサーバーがTelnetを持っている場合は、アプリケーションサーバー上のコマンドプロンプトでこれを試してみてください。

telnet serverName 1433 

それはおそらく接続しようとしているがハングアップするでしょう。

  • 異なるゾーンにある場合は、2つのサーバー間にファイアウォールのブロックがないことを確認してください。

  • SQL Serverのサーバーにポート1433用の受信ルールが開いているかどうかを確認します(SQL Server Expressはこのポートを既定で開きませんが、エンタープライズとスタンダードはこれを行います)。

  • SQL ServerがSql Server Configuration Managerを介してTCP IPと名前付きパイプの接続を受け入れることを確認します。

関連する問題