1

インスタンス名を確認し、自動クローズがtrueに設定され、サーバーでのリモート接続を許可するがチェックされています。SQL Server 構成マネージャーを開くと、サーバーが実行されています。私も再起動しました。このデータベースを他のすべてのデータベースと同じ方法で作成しました。私は Entity Framework を使用しており、名前を確認したところweb.config一致しています。これは、ウィザードの既定の接続文字列です。デプロイ前のテストに使用します。接続できない理由を突き止めるためにチェックすることは他に考えられません。SQL Server 内での作業はすべて問題ありません。

これが一般的なエラーです。

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

構成:

connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string='data source=.\SQL_1;attachdbfilename="C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQL_1\MSSQL\DATA\A_db.mdf";integrated security=True;connect timeout=10;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

前もって感謝します。

4

2 に答える 2

1

SQLインスタンスの適切なセットアップは、Microsoftがエンティティフレームワークで考えてほしいほど簡単ではないということで、この答えの前置きをさせてください。これは少し複雑で、DBAの帽子を少しかぶる必要があります。

発生したエラーは、WebインスタンスがWindows統合セキュリティを使用してSQLサーバーに接続しようとしていることを示しています。これは、(a)プロセスが実行されているWindowsユーザー(IISで構成可能)がSQLサーバーへのログオンを許可されており、データベースに有効なログインがある場合、および(b)SQLサーバーの場合に正常に機能します。 IISサーバーと同じマシンまたは同じドメインにあります。

これに照らして、SQLServer認証を使用することをお勧めします。これを行う方法を知る必要がある場合は、「SQLServer認証のセットアップ」を検索することをお勧めします。これはセットアップに役立つ可能性のある記事です。

http://msdn.microsoft.com/en-us/library/aa337562.aspx

一般的に、次のアクションを実行することをお勧めします。

  1. MS SQLManagementStudioを使用してSQLサーバーに接続します。
  2. データベースを永続的に接続してから、接続文字列ではなく、接続文字列のInitial Catalogプロパティを使用しますAttachDbFileName
  3. 次に、SQLサーバーでログインユーザー名とパスワードを設定し、データベースにログインを作成します。
  4. ログインが実行したいストアドプロシージャのみを実行できることを確認してください。実行中のSQLステートメントへのアクセスを拒否します。

また、ユーザー名とパスワードを接続文字列に追加し、IntegratedSecurity=falseを設定する必要があります。

SQLサーバーを適切にセットアップしたら、どうなるか教えてください。

于 2012-12-31T04:02:35.413 に答える
0

このエラーは、プロバイダー コードが SQL Server を見つけられないことを意味します。サーバー インスタンス名 ( である必要があります) を確認した場合、これはパラメーターで<yourLocalServer>\SQL_1ある可能性があります。これは、接続先のデータベースを指定する方法として信頼性が非常に低いためです (ファイル名ではなく、データベース名を使用する必要があります)。attachdbfilename=アプリケーションとは関係なく、ファイル名が変更される可能性がある理由が約 100 あるためです。

于 2012-12-30T06:00:17.503 に答える