2013-09-06 21 views
11

ile bulup yükleyemedi. MVC4 Projectimizi Azure Mysql DB ile çalıştırmayı denediğimizde aşağıdaki hatayı alıyoruz. Biz şu var Web.Config dosyasındaKayıtlı .Net Framework Veri Sağlayıcısı'nı MySql + MVC4

,

<DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
</DbProviderFactories> 

Hata:

Failed to find or load the registered .Net Framework Data Provider.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Configuration.ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.

Kaynak hatası:

Line 96:    if (objectQuery != null && !string.IsNullOrEmpty(path)) 
Line 97:    { 
Line 98:     return objectQuery.Include(path); 
Line 99:    } 
Line 100: 

Source File: C:\Phase2\FreeLance\FreeLance\Framework\Data\FreeLance.Data.Framework\EntityFramework\Extensions.cs Line: 98 

Stack Trace: 


[ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.] 
    System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow) +2238858 
    System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +143 
    System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) +641 
    System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config) +144 
    System.Data.Entity.Internal.LazyInternalConnection.Initialize() +95 
    System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel() +16 
    System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +269 
    System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +26 
    System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +71 
    System.Data.Entity.Internal.Linq.InternalSet`1.Include(String path) +25 
    System.Data.Entity.Infrastructure.DbQuery`1.Include(String path) +111 
    FreeLance.Data.Framework.EntityFramework.Extensions.Include(IQueryable`1 source, String path) in C:\Phase2\FreeLance\FreeLance\Framework\Data\FreeLance.Data.Framework\EntityFramework\Extensions.cs:98 
    FreeLance.Data.Framework.EntityFramework.Extensions.Include(IQueryable`1 source, Expression`1 expression) in C:\Phase2\FreeLance\FreeLance\Framework\Data\FreeLance.Data.Framework\EntityFramework\Extensions.cs:64 
    FreeLance.Data.Framework.EntityFramework.Extensions.Include(IQueryable`1 source, Expression`1[] expressions) in C:\Phase2\FreeLance\FreeLance\Framework\Data\FreeLance.Data.Framework\EntityFramework\Extensions.cs:79 
    FreeLance.Data.Framework.EntityFramework.Repository`1.GetAll(Expression`1[] include) in C:\Phase2\FreeLance\FreeLance\Framework\Data\FreeLance.Data.Framework\EntityFramework\Repository.cs:89 
    FreeLance.Business.PageBC.GetPages() in C:\Phase2\FreeLance\FreeLance\Business\FreeLance.Business\Admin\PageBC.cs:49 
    FreeLance.Services.PageService.GetPages() in C:\Phase2\FreeLance\FreeLance\Services\FreeLance.Services\PageService.cs:54 
    FreeLance.Web.Helpers.DataHelper.GetAppPages() in C:\Phase2\FreeLance\FreeLance\User Interface\FreeLance.Web\Helpers\DataHelper.cs:250 
    FreeLance.Web.ResourceConfig.GetAppPages() in C:\Phase2\FreeLance\FreeLance\User Interface\FreeLance.Web\App_Start\ResourceConfig.cs:64 
    FreeLance.Web.AppConfig.Run() in C:\Phase2\FreeLance\FreeLance\User Interface\FreeLance.Web\App_Start\AppConfig.cs:55 
    FreeLance.Web.MvcApplication.Application_Start() in C:\Phase2\FreeLance\FreeLance\User Interface\FreeLance.Web\Global.asax.cs:40 

[HttpException (0x80004005): Failed to find or load the registered .Net Framework Data Provider.] 
    System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +4054645 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +191 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375 

[HttpException (0x80004005): Failed to find or load the registered .Net Framework Data Provider.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11646640 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4869909 

cevap

16

Eğer MySql eklemiş emin olun. Data.Entity.dllMVC proje

4

Mono kullanarak Eğer bir çöpeMySql.Data.dll dosyaları da machine.config MySQL Veri Sağlayıcısı düğümünü olduğundan emin olun. Ben 4.5 kullanıyorum bu yüzden benim için bu kadar /opt/mono/4.5/machine.config (örnek konum): Sen Linux'ta basit komutunu çalıştırarak machine.config yerini bulabilir

<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.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 

:

cd/&& find -name 'machine.config' 

Sen Ubuntu üzerinde sudofind önce komutunu gerekebilir:

cd/&& sudo find -name 'machine.config'