【问题标题】:"The invoked member is not supported in a dynamic assembly." after upgrading web app from .NET 3.5 to 4.0“动态程序集中不支持调用的成员。”将 Web 应用程序从 .NET 3.5 升级到 4.0 后
【发布时间】:2011-09-15 18:13:02
【问题描述】:

我正在尝试从 VS2008 迁移到 VS2010,并且还想将网站升级到 .NET 4.0。我已经复制了源代码并运行了转换向导,没有任何错误。也没有编译错误。但是,当页面加载时,我得到了异常:

System.NotSupportedException was unhandled by user code
  Message=The invoked member is not supported in a dynamic assembly.
  Source=mscorlib
  StackTrace:
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
       at CoreLab.Common.o.a(Assembly A_0)
       at CoreLab.Common.v.a(LicenseContext A_0, Type A_1, String& A_2, String& A_3, String& A_4)
       at CoreLab.Common.v.a(LicenseContext A_0, Type A_1, String& A_2, Boolean& A_3, String& A_4, String& A_5)
       at CoreLab.Common.v.a(LicenseContext A_0, Type A_1, Boolean A_2)
       at CoreLab.Oracle.OracleProviderFactory.CreateConnection()
       at System.Data.EntityClient.EntityConnection.GetStoreConnection(DbProviderFactory factory)
       at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
       at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
       at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
       at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
       at VZW.TrainingPortfolioManager.Entity.TPMEntities..ctor(String connectionString) in C:\TPM_NET4\Entity\TPMEntities.Designer.cs:line 114
       at VZW.TrainingPortfolioManager.Website.Global.Session_Start(Object sender, EventArgs e) in C:\TPM_NET4\Website\Global.asax.cs:line 110
       at System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e)
       at System.Web.SessionState.SessionStateModule.CompleteAcquireState()
       at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)
       at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
  InnerException: 

错误发生在 ADO.NET 实体框架在构造函数中自动生成的代码中:

/// <summary>
/// Initialize a new TPMEntities object.
/// </summary>
public TPMEntities(string connectionString) : base(connectionString, "TPMEntities")
{
    OnContextCreated();
}

调用基础构造函数时发生异常。

.NET 4.0 的实体框架中是否有一些更改需要我做一些不同的事情或改变任何事情?我在这里几乎不知所措。谢谢!

【问题讨论】:

  • 你看过了吗,elegantcode.com/2010/01/28/…
  • 这是一个非常普遍的错误。你使用什么命名空间?
  • 这是CoreLab.Common 中的一个错误;他们需要检查程序集是否不是动态的。
  • @George - 是的,我也确实看过那篇文章。我尝试在连接字符串中完全限定程序集,但没有任何区别。
  • CoreLab 是 Oracle 的 ADO.NET 提供程序的名称... IIRC 他们在很长一段时间(V 5 发布时的 2 或 3 年)之前将其重命名为 Devart... Devart 组件目前是 V 6.5(即使与 CTP 也有非常好的 EF 和 Linq 集成)-您使用的是哪个版本?

标签: c# .net asp.net entity-framework entity-framework-4


【解决方案1】:

这个问题最终是由于我使用的 Oracle 数据库驱动程序版本中的错误造成的。我与 DevArt 确认了这一点,并获得了修复此错误的新版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2011-08-10
    • 2010-12-06
    • 2011-05-06
    相关资源
    最近更新 更多