我在帐户实体上有一个简单的帖子创建插件,该插件在SharePoint在线中具有与已创建的帐户的同名相同名称。
我已经使用了从Microsoft.SharePoint.Client.Runtime
汇编的SharePointOnlineCredentials
类来登录到SharePoint实例。
只要将插件设置为isolation mode = none
,插件就可以在本地实例上工作。
当我以沙盒隔离模式运行插件时,我会在下面获得错误(在线版本错误)。
我想在SharePoint的在线实例上运行此插件,但是我相信,我不能以隔离模式在线运行=无,还有另一种使用此SharePoint Assembly在在线CRM实例上运行代码的方法吗?
消息:创建,方法:executepluginlogic异常: System.Security.SecurityException:请求类型许可 'system.security.permissions.securitypermission,Mscorlib, 版本= 4.0.0.0,文化=中性,publicKeytoken = B77A5C561934E089' 失败的。在system.security.codeaccesssecurityengine.check(对象) 需求,stackcrawlmark&stackmark,boolean ispermset) system.security.codeaccesspermission.demand()at system.net.authenticationmanager.register(iauthenticationmodule authenticationModule)at
microsoft.sharepoint.client.sharepointonlineauthenticationmodule.senereregistered() 在 microsoft.sharepoint.client.sharepointonlinecredentials..ctor(字符串 用户名,Securestring密码)
mwlspxrmtoolkitonline.plugins.accountcreate.executepluginlogic(iserviceProvider ServiceProvider)at mwlspxrmtoolkitonline.plugins.baseplugin.execute(iserviceProvider ServiceProvider)
失败的动作是:要求 失败的第一个许可是:
system.security.permissions.securitypermissermiss 失败的组件是:mycomputer
不是明智的,在沙盒模式下运行时,您不能包括对其他组件的引用。您可以尝试使用Ilmerge将组件组合在一起,但是如果我是您,我会采取其他方法,例如将工作推向外部Web服务。
如果使用ilmerge将组件组合在一起(按照詹姆斯·伍德的建议,因为在沙盒模式下运行时,您不能包括参考文献),请使用'/copyAttrs'参数与ilmerge。如果您已使用Nuget软件包安装了该项目中的Ilmarge:
在解决方案中编辑文件:ilmerge.props更改参数:
<ILMergeAllowMultipleAssemblyLevelAttributes>true</ILMergeAllowMultipleAssemblyLevelAttributes>
<ILMergeCopyAttributes>true</ILMergeCopyAttributes>