繁体   English   中英

在CRM 2015中执行多个请求时出现交易错误

[英]Execute multiple requests in transaction error in crm 2015

我使用CRM 2015 SDK(v7.1.2)开发了一个应用程序。 我想通过ExecuteTransactionRequest发送2个针对crm的请求,但出现错误:

The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter
 http://schemas.microsoft.com/xrm/2011/Contracts/Services:request. The
 InnerException message was 'Error in line 1 position 451. Element
 'http://schemas.microsoft.com/xrm/2011/Contracts/Services:request'
contains data from a type that maps to the name
 'http://schemas.microsoft.com/xrm/2011/Contracts:ExecuteTransactionRequest'.
 The deserializer has no knowledge of any type that maps to this name.
Consider changing the implementation of the ResolveName method on your
DataContractResolver to return a non-null value for name
 'ExecuteTransactionRequest' and namespace
 'http://schemas.microsoft.com/xrm/2011/Contracts'.'

这是我的应用程序的图片

我使用了此链接: https : //msdn.microsoft.com/en-us/library/mt634414.aspx

请帮我!!!

请参阅以下网址中的 “在单个数据库事务中执行消息”部分: https : //msdn.microsoft.com/zh-cn/library/gg328075(v=crm.7).aspx

您发现此消息位于客户端SDK中,但这并不意味着它也位于服务器上。 您有SDK 7.1,但在服务器上则有7.0-转到CRm安装目录(可能是C:\\Program Files\\Microsoft Dynamics CRM ),转到Server / bin并检查Microsoft.Xrm.Sdk.dll的版本。 它将类似于7.0.1,并且不包含此消息。 我认为MS在线文档具有误导性,因为它显示了针对CRM 2015的消息,但是很遗憾,该消息在此处不可用。 对于事务,您可以像在CRM 2015更新1之前一样通过使用CRM命令模式来执行此操作。 创建一个实体(将其称为Command或其他名称)并制作一个可在Create上运行的插件(例如,可以有很多方法,但这是最简单的方法)。

您在第20阶段和第40阶段在插件中执行的所有操作都将在事务中运行,因此您可以将此逻辑放入此插件中。 当然,此“命令”实体可以具有您要传入的一些参数,因此您可以为传递给该实体的不同参数使用不同的逻辑。 希望对您来说很清楚。 这不像ExecuteTransaction那样优雅,但是它的工作做得很好,并且对于许多版本的CRM,都必须像这样完成,所以我确定它可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM