2017-05-17 3 views
0

私はSqliteを使ってデータを保存するWebアプリケーションを開発しています。サーバーに展開すると、以下のエラーメッセージが表示されます。接続文字列内のファイルへのパスが正しく、開発マシン上で正しく動作しています。何が間違っていますか?サーバにデプロイしたときにEF6でSqliteが動作しない

Entity Frameworkのプロバイダの種類 「System.Data.SQLite.EF6.SQLiteProviderServices、 System.Data.SQLite.EF6」 不変名前のADO.NETプロバイダのためのアプリケーションの設定ファイルに登録された「システム.Data.SQLite 'は をロードできませんでした。アセンブリで修飾された名前が使用され、実行中のアプリケーションでアセンブリが使用可能であることを で確認します。詳細については、 http://go.microsoft.com/fwlink/?LinkId=260882を参照してください。

+0

エラーはかなり自明ですね。 – Fabjan

+0

@Fabjanあれば、私はその質問をしません。ファイルはそこにあり、web.configファイルはdevと同じで、ファイルへのパスはそれに応じて変更されています。何か案は? – Midas

+0

@MidasデプロイメントサーバにSQLiteプロバイダをインストールしてください。 –

答えて

0

[OK]をクリックします。開発マシンでSqliteをセットアップすると、Visual Studio用のデザイナーツール(Dllのものを除く)をインストールしたインストーラを使用しました。サーバーにデプロイするときに、必要なDLLはすべて含まれていませんでした。 Sqliteには、x86またはx64システムを対象としたアンマネージライブラリがあります。それらは開発マシンにインストールされますが、プロジェクトでは使用できません。サーバー上でいわゆるXCOPY展開を実行すると、アンマネージプロバイダは利用できなくなります。次のリンクからダウンロードする必要があります。https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wikiとbin-folderにそれらを含めてください。それだけでは十分ではありません。

.NETプロジェクトは、デフォルトで[任意のCPU]に設定されています。サーバーオペレーティングシステム(32ビットまたは64)に応じて、x86またはx64(myオプション)を実行するようにアプリケーションをターゲットにする必要があります。それだけで、Sqliteプロバイダがロードされます。

関連する問題