2012-01-10 2 views
1

私は私の地元のIIS 7上のMVC 2アプリケーションを実行しようとすると、私はこのエラーを取得しておいてください。どのようにSQL Server Expressのデータベースファイルの自動作成エラーを防ぐには?

Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.

しかし、私はSQL Server Expressに接続されている何かを持っていない、とすべての私の接続文字列が働きます私が自分のlocalhostを実行しているときにうまくいく。

このようなエラーの原因を教えてください。どうすればそれを防ぐことができますか?

+0

**あなたの接続文字列を**表示できますか? –

答えて

0

MVC 2などのASP.NETアプリケーションは、デフォルトでユーザーとロールを格納するSQL Serverデータベースを作成します。データベースはASPNETDBと呼ばれ、App_Dataフォルダに格納されます。まだ存在しない場合、ASP.NETはアプリケーションの起動時にASP.NETを作成しようとします。

このデータベースを作成または開くには、SQL Server Expressのユーザーインスタンスが使用されます。ユーザーインスタンスを開始するには、現在のユーザー(この場合はASP.NETアプリケーションプールが実行されているアカウント)のユーザープロファイルを読み込む必要があります。ただし、IISアプリケーションプールの既定の構成では、ユーザープロファイルを読み込んで開始時間を制限し、メモリを節約することはありません。

アプリケーションプールのユーザープロファイルを読み込めるようにするには、IISマネージャーでその構成に移動し、ユーザープロファイルを[詳細オプション]に切り替えます。 真のに設定するとうまくいくはずです。

ユーザーインスタンスの使用とユーザープロファイルの読み込みを避けたい場合は、アプリケーションのユーザーと役割に異なるデータベースを使用できます。もう一度IISマネージャーにアクセスし、Webサイトを探して、接続文字列セクションをASP.NET構成で探します。 LocalSqlServerという接続文字列が表示されます。使用するデータベースを指すように更新してください。新しいASPNETDBデータベースを作成する方法については、this threadを参照してください。メインのSQL Serverインスタンスで作成する場合は、プロファイルを接続する必要はありません.SQL Serverにログインを作成し、接続文字列がそれを使用していることを確認してください。

関連する問題