我是学习Dynamics 365插件的开发人员。Dynamics 365插件SDK在沙盒模式下更新强类型实体时抛出异常
问题:在强类型实体上调用Update方法时,我得到一个异常。确切的错误信息是:
“System.Runtime.Serialization.SerializationException:Microsoft Dynamics CRM中遇到错误,为管理员或支持参考编号:#1330ADC1”
我的设置: 我的解决方案包含一个简单的插件。我创建了一个强类型的实体帐户。插件的隔离模式是沙盒。 Telephone1字段是一个字符串。
我从CRM中检索帐户,然后将Telephone1字段更新为新值并更新帐户记录。简单:)
代码:
public class PostOperationaccountUpdate: IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
var organisationService = serviceProvider.GetService(typeof (IOrganizationService)) as IOrganizationService;
var context = serviceProvider.GetService(typeof (IPluginExecutionContext)) as IPluginExecutionContext;
var entityAccount = context.InputParameters["Target"] as Entity;
var id = entityAccount.Id;
var account = organisationService.Retrieve("account", id, new ColumnSet("telephone1"));
//Get a strongly typed version of the Account entity
var dbAccount = account.ToEntity<Account>();
//Update the telephone1 field using the "old" way
account["telephone1"] = "1234567890";
try
{
//This will pass
organisationService.Update(account);
//Update the strongly typed Account
dbAccount.Telephone1 = "plop";
//This fails
organisationService.Update(dbAccount);
}
catch (Exception ex)
{
throw;
}
}
}
有什么我想: - >我已经改变了插件的隔离模式到无 - 这工作!按照最佳做法,不建议
感谢您的帮助 查尔斯
不它在沙箱中工作,如果你迟到了吗? – Alex
碰巧强类型Account类是不同的DLL吗?如果是这样,我相信你将不得不将其插入到插件DLL中。您可以通过直接将Account.cs类添加到您的插件项目中来快速测试。 – Polshgiant
@亚历克斯:是的。如果我让它延迟和沙箱它,它确实工作 – h4ck3r8ug5