0

我有一个无法修复的错误。

我正在开发一个将 guid 作为参数并将该实体“克隆”到另一个中的应用程序。(我知道我可以通过 javascript 做到这一点,问题是 CRM 服务器没有所需的汇总,我无法更新它)。

当我在我的计算机上调试时,这些项目工作正常,但是当我将它部署到生产服务器时它就崩溃了。我的第一个猜测是这是一个身份验证问题,但我修改了 IIS 中的身份验证规则并模拟了任何使用我的应用程序但无论如何都没有工作的 Windows 用户。

它抛出的错误是:-2146233088 System.Collections.ListDictionaryInternal 处理此请求时发生错误。在 Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.SaveChanges(SaveChangesOptions options) 在 Ambiente.DataAccess.Entities.CRMOrdenDeCompra.CreateOrdenDeCompra(Guid guidSolicitudDeCompra) 在 c:\Wip\Projects\Dev\CRMINTEGRATION\CRMINTEGRATION.DataAccess\Entities\CRMOrdenDeCompra。 c:\Wip\Projects\Dev\CRMINTEGRATION\CRMINTEGRATION.WebApp\Controllers\RequestController.cs:第 22 行中 CRMINTEGRATION.WebApp.Controllers.RequestController.CreateOrdenDeCompra(String guid) 的 cs:line 42

插入实体的代码:

        var solicituddecompraContext = new CRMSolicitudDeCompra();
        var solicituddecompra = new new_solicituddecompra();
        solicituddecompra = context.new_solicituddecompraSet.FirstOrDefault(q => q.new_solicituddecompraId == parameterGuid);

        new_ordendecompra ordendecompra = new new_ordendecompra();
        ordendecompra.new_ordendecompraId = Guid.NewGuid();
        ordendecompra.new_name = string.Format(solicituddecompra.new_name + " ({0})", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"));
        ordendecompra.new_FechaRequirida = solicituddecompra.new_Fecharequerida;
        ordendecompra.new_Tipodesolicitud = solicituddecompra.new_Tipodesolicitud;
        ordendecompra.new_Observaciones = solicituddecompra.new_observaciones;
        ordendecompra.new_Numerodesolicitud = solicituddecompra.new_SolicitudNo;

        var detallerequisicion = CRMDetalleRequisicion.getDetalleRequisicion(context, guidSolicitudDeCompra);

        context.AddObject(ordendecompra);
        context.SaveChanges();

我使用 crmsvcutil.exe 生成了 CRM 的 XRM 类。所以你在代码中看到的类的名字其实就是CRM中实体的名字。在到达 entidad.SaveChanges() 方法之前,上述所有操作都可以正常工作。

附言。正如您在代码中看到的,英语不是我的母语。如果我犯了任何错误,请随时纠正我。我会欣赏的:)。

4

0 回答 0