Dynamics CRM 2016在线安全/隔离模式

时间:2016-12-01 09:15:58

标签: dynamics-crm crm microsoft-dynamics dynamics-crm-online dynamics-crm-2016

我在帐户实体上有一个简单的帖子创建插件,它使SharePoint中的子网站与已创建的帐户的名称相同。

我使用了SharePointOnlineCredentials程序集中的Microsoft.SharePoint.Client.Runtime类来登录SharePoint实例。

只要插件设置为isolation mode = none,插件就可以在内部部署实例上运行。

当我在Sandbox隔离模式下运行插件时,我收到以下错误(在线版本错误)。

我想在SharePoint的在线实例上运行此插件,但我相信,我无法使用隔离模式=无法在线运行,是否有另一种在在线CRM实例上使用此SharePoint程序集运行代码的方法?

  

消息:创建,方法:ExecutePluginLogic异常:   System.Security.SecurityException:请求类型的权限   'System.Security.Permissions.SecurityPermission,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   失败。在System.Security.CodeAccessSecurityEngine.Check(Object   需求,StackCrawlMark& stackMark,Boolean isPermSet)at   System.Security.CodeAccessPermission.Demand()at   System.Net.AuthenticationManager.Register(IAuthenticationModule   在

处的authenticationModule      

Microsoft.SharePoint.Client.SharePointOnlineAuthenticationModule.EnsureRegistered()   在   Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(字符串   

的用户名,SecureString密码)      

MWLSPXRMToolkitOnline.Plugins.AccountCreate.ExecutePluginLogic(的IServiceProvider   serviceProvider)at   MWLSPXRMToolkitOnline.Plugins.BasePlugin.Execute(的IServiceProvider   serviceProvider)

     

失败的行动是:需求的类型   失败的第一个许可是:

     

System.Security.Permissions.SecurityPermission The Zone of the   失败的程序集是:MyComputer

2 个答案:

答案 0 :(得分:1)

不明智,在沙盒模式下运行时,您不能包含对其他程序集的引用。您可以尝试使用ILMerge将组件组合在一起,但如果我是你,我会采取不同的方法,例如将工作推向外部Web服务。

答案 1 :(得分:0)

如果使用ILMerge将程序集组合在一起(根据James Wood的建议,因为在沙盒模式下运行时不能包含引用),请在ILMerge中使用'/ copyattrs'参数。 如果您已使用NuGet包在项目中安装ilMarge:

在解决方案中编辑文件:ILMerge.props 更改参数:

<ILMergeAllowMultipleAssemblyLevelAttributes>true</ILMergeAllowMultipleAssemblyLevelAttributes>
<ILMergeCopyAttributes>true</ILMergeCopyAttributes>