web-dev-qa-db-ja.com

要求された.Net Frameworkデータプロバイダーが見つかりません。インストールされていない可能性があります。 -mvc3 asp.netチュートリアルに従う場合

ASP.NET MVC 3ミュージックストアアプリケーションチュートリアルに従っていますが、パート4で立ち往生しています: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4 。 SQLデータプロバイダーがインストールされていないことを通知し続けます。

正確なエラー:

System.ArgumentException was unhandled by user code
  Message=Unable to find the requested .Net Framework Data Provider.  It may not be installed.
  Source=System.Data
  StackTrace:
       at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
       at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name)
       at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
       at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
       at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
       at System.Data.Entity.Internal.InternalContext.Initialize()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
  InnerException: 

System.Data.SqlServerCeへの参照を追加しました-まだ同じエラーがあります。どんなガイダンスでも本当に感謝されます

45
michelle

NuGetを使用して、Visual Studio 2010でこれに似た問題を解決できました。

[ツール]> [ライブラリパッケージマネージャー]> [ソリューションのNuGetパッケージの管理]に移動します...

ダイアログで、「EntityFramework.SqlServerCompact」を検索します。 「SQL Server Compact 4.0をEntity Frameworkで使用できるようにする」という説明のパッケージがあります。このパッケージをインストールします。

次のような要素がweb.configに挿入されます。

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="System.Data.SqlServerCe.4.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>
31
vitaminjeff

同じ問題がありました。 C:\ Windows\AssemblyでSystem.Data.SqlServerCeのバージョンを確認しました。 3.5.1.0でした。そこで、バージョン4.0.0をリンク(x86)からインストールし、正常に動作するようにしました。

http://www.Microsoft.com/download/en/details.aspx?id=17876

16
Sundar

これらの行をweb.configファイルに追加します。

<system.data>
    <DbProviderFactories>
               <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,  Version=6.6.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
    </DbProviderFactories>
</system.data>

プロバイダーをMySQLからSQL Serverまたは接続しているデータベースプロバイダーに変更します。

10
Atif

このエラーの主な原因は、x86 vs x64のフレームワークとプロセッサアーキテクチャの非互換性です。ソリューション:ソリューションエクスプローラー>プロジェクトプロパティ>コンパイルタブ>高度なコンパイルオプションに移動します解決。私はそれを試してみましたが、とてもうまくいきました。これがあなたを助けることを願っています。マレク

1
Malek Aitouche

これは、メンバーシップにSystem.Web.ProvidersDefaultMembershipProviderを使用しようとする新しいプロジェクトを作成したために起こりました。私のDBとアプリケーションは、代わりにSystem.Web.Security.SqlMembershipProviderを使用するようにセットアップされました。それを機能させるには、プロバイダーと接続文字列を更新する必要がありました(このプロバイダーには奇妙な接続文字列の要件があるようです)。

0
JSideris

私の場合、この問題はSQLデータベースへの接続の問題が原因でした。デザインビューからSQLデータソースを切断してから再接続しました。私はバックアップして実行しています。これがすべての人に役立つことを願っています。

0
jp131984

パート4のMvcMusicStoreチュートリアルに従うときも同じで、指定された接続文字列をこれに置き換えました。

add name = "MusicStoreEntities" connectionString = "data source =。\ SQLEXPRESS; Integrated Security = SSPI; database = MvcMusicStore; User ID = sa; password =" providerName = "System.Data.SqlClient" />

それは私のために働いた。

0
Nithya

WCFサービスのSqlClientでも同様の問題が発生しました。私の解決策は、その行をクライアントapp.configに入れることでした

  <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>

それが誰かに役立つことを願っています。

0
ari