2

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

我们正在开发一个应用程序,该应用程序调用 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
4

2 回答 2

5
  1. 您是否尝试在 exe/dll 上运行 PEVerify 以查看是否有任何问题?
  2. 您是否尝试在其上运行 ngen 以查看 ngen 是否失败?
  3. 您可以发布失败的代码或您的问题的小重现吗?

还有一些要寻找的东西:

  • lambda是一个巨大的方法吗?(也就是说,它是否关闭了很多值?) - 尝试将其移出,以免出现这种情况
  • 您是否使用在参数或输出中具有 COM 对象的委托类型?(我过去遇到过这个问题)
于 2010-09-15T11:49:53.173 回答
1

这有没有得到解决?我遇到了类似的问题

InvalidProgramException:公共语言运行时检测到无效程序

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

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

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

于 2010-11-08T20:31:14.597 回答