web-dev-qa-db-ja.com

エラー:SQL Serverのユーザーインスタンスの生成に失敗しました

MDFに接続しようとしています。私はSQL Server Expressを完全に再インストールするまでに時間を費やしました(以前は05開発とExpressがあった私のボックスにインストールされたSQLの唯一のフレーバーです)。パスがすべて正しいことを確認しましたが、これまでのところgoogle-fuは役に立ちませんでした。

完全な例外メッセージは次のとおりです。

ユーザーインスタンスのプロセスの開始に失敗したため、SQL Serverのユーザーインスタンスを生成できませんでした。接続は閉じられます。

接続文字列は次のとおりです。

<add name= "CustomerEntities"
     connectionString="metadata=res://*/Data.CustomerModel.csdl|res://*/Data.CustomerModel.ssdl|res://*/Data.CustomerModel.msl;
     provider=System.Data.SqlClient;
     provider connection string='Data Source=.\SQLEXPRESS;
     AttachDbFilename=\App_Data\CustomerDb.mdf;
     Integrated Security=True;
     User Instance=True'"
     providerName="System.Data.EntityClient" />

追加情報:

オンラインで見つけたこのエラーへの言及のいくつかは、私には当てはまりません。たとえば、私が見たのは、リモートデスクトップを介してユーザーインスタンスを起動しようとしたときにこのエラーが発生した場合です(これはローカルで実行しています)。もう1つは、古い高速インストールの残りのファイルに関係があると示唆していますが、私は規定の場所を調べましたが、それらのアーティファクトは見つかりませんでした。私も実行してみましたsp_configure 'user instances enabled', '1'、しかしそれはすでに1に設定されていると述べた。

28
Joel Martinez

わかりました。それは複合的な問題だったと思います...それを解決するために私が取った手順は次のとおりです:

  1. 接続文字列の次のプロパティを変更しました(微妙な違いに注意してください):AttachDbFilename=|DataDirectory|CustomerDb.mdf;
  2. 次のディレクトリの内容を削除しました:c:\Users\<user name>\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS。私は以前これを探したことがあると思いましたが、実際にMicrosoft Sql Serverフォルダ。再び、微妙な違い。

これら2つを実行すると、接続が機能し始めました。

69
Joel Martinez

上記の回答で多くの人々が問題を解決したにもかかわらず、私はまだこれらが問題の本質に及ばないことに気付いています。これに最も近いのは、上記の@sohaibyによる回答です。しかし、それは誤ってManagement Studioの使用を指します。

このトピックの上のエラーメッセージは、問題がユーザーインスタンスの生成にあることを非常に明確に伝えています。ここでは、インスタンスとその使用方法について詳しく説明します。 https://msdn.Microsoft.com/en-us/library/ms254504(v = vs.110).aspx

個人的には、DB接続をWindows認証モードからSQL Server認証に切り替えるときにこの問題が発生しました。接続文字列の一部を次のように変更するだけで解決しました: "User Instance = false;" "User Instance = true;"ではなく、機能しましたWindows認証で問題ありません。

「User Instance = false;」に変更した後私の接続は、追加の操作なしで問題なく動作しました。私はそれがうまくいく、またはすべてのシナリオに適していると主張することはできません。ただし、SQLサーバーの作業ディレクトリの消去など、上記の他の抜本的な方法の前に試してみることをお勧めします。

5
Boris Zinchenko

コードをあるマシンから別のマシンに移動したときにも同じエラーが発生しました。私はVS2010を使用していますが、SQLEXPRESS 2008も一緒に使用されます。

トリック、次のフォルダからすべてのコンテンツを削除すると、「C:\ Users\UserName\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS」が機能しました。

4
DSH

ここにある他のソリューションに加えて、これも役立つかもしれません。 ApplicationPoolIdentityではなく、アプリケーションプールがネットワークサービスとして実行されていることを確認します。

このソリューションはここにあります: http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-to-create-the- aspnetdb-mdf-file.aspx

1
Derrick

Windowsフォームアプリケーションのmdfファイルでこの問題を段階的に実行し、コンピューターを再起動するだけで問題は解決します。

0
Kishan

他の人が指摘したように、ディレクトリc:\ Users \\ AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESSの内容を削除すると解決しました。 Windows 7では、ドキュメントブラウザーからc:\ users\username dirを参照しても他の人を助けるかもしれないというメモには、AppDataフォルダーが表示されません。私はそれが実際に存在することを発見しました(しかし、Windows 7のドキュメントブラウザーには表示されません)。それを取得するには、フルパス名を入力する必要があります。

0
Jarnal

今朝、テスト展開環境でこのエラーが発生し始めました。 SQL Server Express 2008を使用していて、発生したエラーは

「ユーザーインスタンスのプロセスの開始に失敗したため、SQL Serverのユーザーインスタンスを生成できませんでした。接続は閉じられます。」

何が原因かわからないので、この投稿や他の投稿の「C:\ Users\UserName\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS」ディレクトリを削除する手順を実行しましたが、役に立ちませんでした。

私にとってのトリックは、接続文字列を

"データソース=。\ SQLExpress;初期カタログ= DBFilePath;統合セキュリティ= SSPI; MultipleActiveResultSets = true"

"データソース=。\ SQLExpress;初期カタログ= DBName;統合セキュリティ= SSPI; MultipleActiveResultSets = true"

0
Hamid Shahid