不能部署MVC 3项目与实体框架4.3.1和Oracle ODAC(Cannot Deploy MV

2019-07-30 12:09发布

目前,我想要部署一个MVC 3应用程序,我一直对我们的测试Web服务器,并正在运行与正确加载一切重大问题。 为了尝试给这个尽可能多的信息,我正在做一个仓部署(我已经发送的所有引用在本地复制),和正在做通过文件系统上的web项目基本发布到应用程序目录上服务器。 我使用的组件包括:

实体框架4.3.1甲骨文ODAC 11.2.0(版本4.112.3.0)

此应用程序有2个实体框架对象,一个去一个SQL Server数据库和其他打算Oracle 10g数据库。 我相信这个问题是与实体框架对象将Oracle数据库。 这是我的第一个MVC 3项目,我的第一个部署(有很多“新”变量这里的),所以我不知道如果我错过了什么或没有。 如何解决这个问题? 一切都运行完美我的本地机器上,只有当我将项目部署到服务器,我有问题。

事情到目前为止,我已经试过:

我所有的控制器从基本控制器(BaseController),其中实体框架的实例对象现场继承。 我不能去从BaseController继承任何控制器的索引视图,但HomeController的从控制器继承。 此页面可以正常工作。 我试着在他人控制器继承,这可以让我到索引视图,但要回BaseController再次在堆栈跟踪导致错误。 该错误出现在哪里,我宣布我的实体框架对象将Oracle数据库中的行发生:

protected internal RadixWebDataPRDX dbRadixData = new RadixWebDataPRDX();

我有Oracle.DataAccess.dll被复制,这还是引起了一个问题。

我对这个错误堆栈跟踪低于感谢:

在“/ RadixMVC”应用程序中的服务器错误。

无法找到所需的.NET Framework数据提供。 它可能没有安装。

说明:在当前Web请求的执行过程中发生未处理的异常。 请检查堆栈跟踪有关该错误它起源于代码的详细信息和。

异常详细信息:System.ArgumentException:无法找到所请求的.NET Framework数据提供。 它可能没有安装。

源错误:

在当前web请求的执行过程中生成未处理的异常。 有关异常原因和发生位置的信息可以使用异常堆栈跟踪下面来识别。

堆栈跟踪:

[ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.]
   System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1420503
   System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +34

[ArgumentException: The specified store provider cannot be found in the configuration, or is not valid.]
   System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +63
   System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) +483
   System.Data.EntityClient.EntityConnection..ctor(String connectionString) +77
   System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString) +40
   System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) +17
   RadixMVC.Models.Data.RadixWebDataPRDX..ctor() in C:\Users\862599\Documents\Visual Studio 2010\Projects\RadixMVC\RadixMVC\RadixMVC.Models.Data\RadixDataPRDX.Designer.cs:34
   RadixMVC.Controllers.BaseController..ctor() in C:\Users\862599\Documents\Visual Studio 2010\Projects\RadixMVC\RadixMVC\RadixMVC\Controllers\BaseController.cs:17
   RadixMVC.Controllers.AccountsPayableController..ctor() +29

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +69
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +67

[InvalidOperationException: An error occurred when trying to create a controller of type 'RadixMVC.Controllers.AccountsPayableController'. Make sure that the controller has a parameterless public constructor.]
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +181
   System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +77
   System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +66
   System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +209
   System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +50
   System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +13
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +23
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +98
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +48
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970356
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.272

Answer 1:

这个问题的解决是什么鲍勃说。 该ODAC组件必须在服务器上安装好了(这是我不知道的)。 感谢鲍勃!



文章来源: Cannot Deploy MVC 3 Project with Entity Framework 4.3.1 and Oracle ODAC