複数のASP.NETサイトを備えたSQL Expressユーザーインスタンス
-
05-09-2019 - |
質問
同じローカルデータベース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サービスの展開場所に依存します。