質問

同じローカルデータベースMDF&LDFを使用するために、エンティティフレームワークとWebサービスを使用したWebサイト、この場合は2つのASP.NETサイトを取得するにはどうすればよいですか?

私は周りを見回して、この種のローカルDBはユーザーインスタンスと呼ばれていると思います - 少なくとも私は現在それを使用しています。以下の情報を見つけるまで、それが機能するかどうかはわかりませんでした MSDNライブラリ そして今、私はそれがうまくいくかどうか本当にわかりません。

ユーザーインスタンスシナリオは次のとおりです。

...

Windows認証を使用した専用ASP.NETホスティング。単一のSQL Server Expressインスタンスは、イントラネットでホストできます。アプリケーションは、なりすましを使用するのではなく、AspNet Windowsアカウントを使用して接続します。ユーザーインスタンスは、すべてのアプリケーションが同じユーザーインスタンスを共有し、互いに隔離されなくなるサードパーティまたは共有ホスティングシナリオに使用しないでください。

これは追加の構成なしですぐに機能しますか?すべての連続したアプリケーションにDBを追加しようとすると、他のDBを使用している場合、使用中のファイルが使用されている場合、この方法ではできないと信じるようになります。ただし、DBが使用されないようにする場合は、追加してから起動します。 思われる うまくいくために。このように使用して、それが破損したりエラーを経験したりしないという安心感はありますか?

できれば、MDF&LDFは、Webサイトのapp_dataディレクトリ(| datadirectory |)に保存されます。このようにすると、サイトのサブディレクトリに入れない限り、サービスの相対的なアドレス指定を確実に使用できるとは思いません。これは正しいですか?

編集: これは学校の割り当てであるため、SQL Server Expressを使用しているので、ほとんど使用する必要があります。ユーザーインスタンスなしで方法がある場合は、それなしでやろうとします。

役に立ちましたか?

解決

使用できません User Instance このため。これにより、一度に1つのクライアントのみがデータベースに接続できます。 2つのアプリケーションが同じ資格情報を使用すると、説明するエラーが表示されます。 2つのアプリケーションが異なる資格情報を使用している場合、基本的に2つの個別のインスタンスを取得します(必要なものではありません)。

また、ユーザーインスタンスはSQL Server Expressでのみサポートされています。あなたの生産環境がどのように見えるかはわかりませんが、おそらくSQL Server Expressでは実行されませんか?

使用する必要があります AttachDBFilename Webアプリケーションの接続文字列で、ローカルデータベースを指す: AttachDBFilename=|DataDirectory|\MyDB.mdf.

あなたのウェブサービスでは、あなたも使用します AttachDBFilename ただし、Webサービスの展開場所に依存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top