【问题标题】:CLR detected an Invalid ProgramCLR 检测到无效程序
【发布时间】:2011-04-12 15:19:32
【问题描述】:

需要任何帮助和想法来解决这个问题。

我们正在开发一个应用程序,该应用程序调用 SAP 以使用 ERPConnect 发布一些数据。我们在 WCF 服务中的一个实体框架调用中遇到以下问题。我们使用的是 .NET4.0,Win 2008 服务器。

活动中包含以下信息:

exception in getting ****getrebateproposal**-****Common Language Runtime detected an invalid program.******   at System.Data.Entity.DynamicProxies.RebateProposal_E1004D9B0153012E0A7A09FC9B574872909349EC992253740AB3C066FC63CF4D.set_Id(Decimal )
       at lambda_method(Closure , Shaper )
       at System.Data.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
       at lambda_method(Closure , Shaper )
       at System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
       at System.Data.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at CommercialTermsRepository.GetRebateProposalsAmountToPay(String rebateAgreement) in D:\Projects\TFS\CIT V2\DataModel\BusinessObjects\CommercialTermsRepository.cs:line 794
       at SAPInterface.RebateProposalService.SetZv41Data(List`1 uploadRebates) in D:\Projects\TFS\CIT V2\Server\UserService\RebateProposalService.svc.cs:line 187

【问题讨论】:

    标签: c# .net entity-framework clr sap


    【解决方案1】:
    1. 您是否尝试在 exe/dll 上运行 PEVerify 以查看是否有任何问题?
    2. 您是否尝试在其上运行 ngen 以查看 ngen 是否失败?
    3. 您能否发布失败的代码或您的问题的一个小重现?

    还有一些需要寻找的东西:

    • lambda 是一个巨大的方法吗? (也就是说,它是否关闭了 lot 的值?) - 尝试将其移出,以免出现这种情况
    • 您是否使用了在参数或输出中包含 COM 对象的委托类型? (我过去曾遇到过这样的问题)

    【讨论】:

    • +1 提到了 PEVerify,这是一个超级棒的 il 验证程序。
    【解决方案2】:

    这个问题解决了吗?我遇到了类似的问题

    InvalidProgramException: Common Language Runtime detected an invalid program

    当动态代理尝试为十进制类型的主键设置属性时,会发生异常。这与我遇到的错误情况相同。我可以用一个简单的 Gridview 和一个由一个表组成的数据库来重现这个问题。

    我正在使用标准 POCO 模板来生成上下文和代理。

    如果在您的环境中可行,解决方法是将主键更改为 int。它看起来像框架中的一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 2017-05-05
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多