2017年12月23日土曜日

System.NotSupportedException: 型 'System.Data.SqlClient.SqlClientFactory' のプロバイダー ファクトリのプロバイダー名を特定できません。ADO.NET プロバイダーがアプリケーション config にインストールまたは登録されていることを確認してください。

1)発生しているエラー

500 : InternalServerError
システムエラーが発生しました。管理者に連絡してください。
System.NotSupportedException: 型 'System.Data.SqlClient.SqlClientFactory' のプロバイダー ファクトリのプロバイダー名を特定できません。ADO.NET プロバイダーがアプリケーション config にインストールまたは登録されていることを確認してください。

事象としては、IISではデバック実行できるが、IIS Expressではデバック実行でエラーが発生する。
IIS Expressのほうがデバックしやすいので対応を行う。

2)対応 web.configに↓の一行を追加
<remove invariant="system.data.sqlite.ef6" />
を追加

Web.configのDbProviderFactoriesタグの全体
  <system.data>
    <DbProviderFactories>
  <remove invariant="System.Data.SQLite.EF6" />  <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>

以上

1 件のコメント: