29

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

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

ユーザーインスタンスのプロセスの開始に失敗したため、SQLServerのユーザーインスタンスの生成に失敗しました。接続が閉じられます。

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

<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に設定されているそうです。

4

11 に答える 11

72

わかりました、今は動作します!それは複合的な問題だったと思います...それを解決するために私が取った手順はそれ自体です:

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

これらの2つのことを行うと、接続が機能し始めました:-D

于 2008-11-11T17:47:36.727 に答える
6

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

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

于 2014-01-08T11:50:23.247 に答える
5

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

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

個人的には、DB 接続を Windows 認証モードから SQL Server 認証モードに切り替えるときに、この問題に遭遇しました。接続文字列の一部を「User Instance = false;」に変更するだけで解決しました。Windows 認証で正常に機能した "User Instance=true;" の代わりに。

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

于 2015-12-24T16:09:14.960 に答える
1

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

この解決策は次の場所にあります: http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-to-create-the-aspnetdb-mdf-ファイル.aspx

于 2011-08-22T13:31:05.173 に答える
0

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

于 2016-11-17T06:04:00.943 に答える
0

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

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

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

私にとってのトリックは、接続文字列をから変更することでした

"Data Source=.\SQLExpress;Initial Catalog=DBFilePath;Integrated Security=SSPI;MultipleActiveResultSets=true"

"Data Source=.\SQLExpress;Initial Catalog=DBName;Integrated Security=SSPI;MultipleActiveResultSets=true" 
于 2013-06-13T16:14:18.493 に答える
-1

これを修正するには、SQL Server Management Studio Express を開いてください。クエリ エディターで、次のテキストを入力します。

sp_configure 'user instances enabled', 1;
 RECONFIGURE

それを実行します。次に、SQL Server データベースを再起動します。

于 2014-07-21T12:01:09.267 に答える
-2

SQL Management Studio を使用して SQL Server インスタンスに接続しようとしましたか?

これでも接続できない場合は、SQL サービスが正しく開始されていないことが原因である可能性があります。

コントロール パネルでサービスをチェックして、サービスが実行されていることを確認します。

于 2008-11-11T17:17:22.937 に答える