エラー:SQL Serverのユーザーインスタンスの生成に失敗しました
-
07-07-2019 - |
質問
MDFに接続しようとしています。 sql server expressを完全に再インストールすることもしました(以前は05 devと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" />
追加情報:
私がオンラインで見つけたこのエラーへの言及のいくつかは、私には当てはまりません。たとえば、リモートデスクトップ経由でユーザーインスタンスを起動しようとすると、このエラーが発生します(ローカルで実行しています)。別の提案は、古い高速インストールからの残りのファイルに関係していることを示唆しています...私は規定の場所を調べましたが、それらのアーティファクトは見つかりませんでした。 sp_configure 'user instances enabled', '1'
も実行しようとしましたが、既に1に設定されていると言われました。
解決
OK、今すぐ動作します!複雑な問題だと思います...私がそれを解決するために行った手順は次のとおりです:
- 接続文字列の次のプロパティを変更しました(わずかな違いに注意してください):
AttachDbFilename=|DataDirectory|CustomerDb.mdf;
- 次のディレクトリの内容を削除しました:
c:\Users\<user name>\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
。私は以前にこれを探していたと思っていましたが、実際にはMicrosoft Sql Server
フォルダーを探していました。再び、微妙な違い。
これら2つのことを行うと、接続が機能し始めました:-D
他のヒント
上記の回答にもかかわらず多くの人々が問題を解決したにもかかわらず、私はまだこれらが問題の本質に及ばないことに気付いています。最も近いのは、上の@sohaibyによる答えです。しかし、誤ってManagement Studioを使用することを指します。
このトピックの上部にあるエラーメッセージは、ユーザーインスタンスの生成に問題があることを明確に示しています。インスタンスとその使用方法について、詳細に説明します。 https://msdn.microsoft.com/en- us / library / ms254504(v = vs.110).aspx
個人的には、DB接続をWindows認証モードからSQL Server認証に切り替えるときにこの問題が発生しました。接続文字列の一部を<!> quot; User Instance = true; <!>ではなく、 <!> quot; User Instance = false; <!> quot; に変更するだけで解決しました。 quot;、Windows認証で正常に機能しました。
<!> quot; User Instance = false; <!> quot;に変更した後接続は追加の操作なしで正常に機能しました。私はそれがすべてのシナリオで機能する、または適切になると主張することはできません。ただし、上記の他の抜本的な方法(SQLサーバーの作業ディレクトリの消去など)の前に試すことをお勧めします。
コードをマシン間で移動したときに同じエラーが発生しました。 VS2010を使用していますが、SQLEXPRESS 2008が付属しています。
トリック、次のフォルダからすべてのコンテンツを削除<!> quot; C:\ Users \ UserName \ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS <!> quot;私のために働いた。
ここでの他のソリューションに加えて、このソリューションも役立ちます。 ApplicationPoolIdentityではなく、アプリケーションプールがネットワークサービスとして実行されていることを確認します。
この解決策は次の場所にあります。 http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know- how-to-create-the-aspnetdb-mdf-file.aspx
他の人が述べたように、ディレクトリの内容を削除すると:c:\ Users \\ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESSが解決しました。 Windows 7でドキュメントブラウザからc:\ users \ usernameディレクトリを参照すると、他の人を助けるかもしれないメモは、しばらくの間私を追い払ったAppDataフォルダを表示しません(AppDataディレクトリがないと思ったので)実際に存在することを発見しました(ただし、Windows 7のドキュメントブラウザーには表示されません)。取得するには、フルパス名を入力するだけです。
今朝、テスト展開環境でこのエラーが発生し始めました。 SQL Server Express 2008を使用していて、エラーが発生しました
<!> quot;ユーザーインスタンスのプロセスの開始に失敗したため、SQL Serverのユーザーインスタンスを生成できませんでした。接続が閉じられます。<!> quot;
何が原因かわからないので、この投稿と他の投稿の指示に従ってください <!> quot; C:\ Users \ UserName \ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS <!> quot;の削除ディレクトリ、しかし利用できません。
私にとってのトリックは、接続文字列を次のように変更することでした
<!> quot; Data Source =。\ SQLExpress; Initial Catalog = DBFilePath; Integrated Security = SSPI; MultipleActiveResultSets = true <!> quot;
to
<!> quot; Data Source =。\ SQLExpress; Initial Catalog = DBName; Integrated Security = SSPI; MultipleActiveResultSets = true <!> quot;
Windowsフォームアプリケーションでmdfファイルを使用してこの問題を解決し、コンピューターを再起動するだけで問題が解決します。
これを修正するには、SQL Server Management Studio Expressを開いてください。 クエリエディターで次のテキストを入力します。
sp_configure 'user instances enabled', 1;
RECONFIGURE
実行します。 次に、SQL Serverデータベースを再起動します。
SQL Management Studioを使用してSQL Serverインスタンスに接続しようとしましたか?
これでも接続できない場合は、SQLサービスが正しく開始されていない可能性があります。
コントロールパネルでサービスを確認して、サービスが実行されていることを確認します。