0

私は、データ ストアに SQL Server CE と EF コード ファーストを使用する ASP.Net 4.0 Web サイトを持っています。サイトに 2 人以上のユーザーがいる場合、5 回目または 6 回目ごとに断続的に次の例外が発生します。

ファイル共有違反があります。別のプロセスがファイルを使用している可能性があります。[D:\ディレクトリ...\file.sdf]。

DbContextコード全体を通して、必要になるたびに作成、使用、および迅速に破棄します。File Mode = Read Writeデフォルトですが、接続文字列に追加しました。

私が間違っているかもしれないアイデア。

4

1 に答える 1

1

何が起こったのか理解できると思います。Go Daddy 共有ホスティングがロード バランサーと複数のサーバーを使用してサイトにサービスを提供していることに言及しているリンクを見つけました (残念ながら場所は思い出せません)。データベース ファイルは、ドライブ文字がマウントされたドライブに表示されますが、すべての Web サーバーが共有するファイル サーバーに配置する必要があることは明らかです。

ネットワーク経由で複数のクライアントが SQL CE を使用する構成はサポートされていません。SQL Compact から Go Daddy が提供する SQL Server インスタンスにアップグレードしたところ、問題 (および上記で言及しなかった別のデータ整合性の問題) は解消されました。

グーグルで調べたときにこの問題が見つからなかったことに少し驚いています。Microsoft は、小さな Web サイトの優れたバックエンドとして SQL Compact を販売しています。私が正しければ、これはその点で重大な責任であるように思われます。

于 2012-01-26T12:57:58.630 に答える