我在帐户实体上有一个简单的post创建插件,在SharePoint online中创建一个子网站,其名称与已经创建的帐户相同。
我使用了来自SharePointOnlineCredentials程序集的Microsoft.SharePoint.Client.Runtime类登录到SharePoint实例。
只要插件设置为isolation mode = none,插件就可以在前提下运行。
当我在Sandbox隔离模式下运行插件时,我会得到下面的错误(在线版本错误)。
我想在SharePoint的一个在线实例上运行这个插件,但是,我相信,我不能以隔离模式= none在线运行,是否有其他方式在在线的SharePoint实例上使用这个SharePoint程序集来运行代码呢?
消息: Create,ExecutePluginLogic :ExecutePluginLogic异常: System.Security.SecurityException:请求对类型为Version=4.0.0.0、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089‘的权限的请求。在System.Security.CodeAccessSecurityEngine.Check(Object需求下,StackCrawlMark& stackMark,Boolean ) Microsoft.SharePoint.Client.SharePointOnlineAuthenticationModule.EnsureRegistered() ( Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(String用户名、SecureString密码) ( MWLSPXRMToolkitOnline.Plugins.AccountCreate.ExecutePluginLogic(IServiceProvider serviceProvider) (在MWLSPXRMToolkitOnline.Plugins.BasePlugin.Execute(IServiceProvider serviceProvider) 失败的操作是:请求失败的第一个权限的类型是: System.Security.Permissions.SecurityPermission失败的程序集区域为: MyComputer
发布于 2016-12-02 09:15:29
显然,在沙盒模式下运行时,不能包含对其他程序集的引用。您可以尝试使用ILMerge将程序集组合在一起,但如果我是您,我将采取不同的方法,例如将工作推送到外部web服务。
发布于 2017-01-09 10:45:07
如果使用ILMerge将程序集组合在一起(正如James所建议的那样,因为在Sandbox模式下运行时不能包含引用),则使用‘/ ILMerge’参数。如果您已经在带有ilMarge包的项目中安装了NuGet:
在solution:ILMerge.props更改参数中编辑文件:
<ILMergeAllowMultipleAssemblyLevelAttributes>true</ILMergeAllowMultipleAssemblyLevelAttributes>
<ILMergeCopyAttributes>true</ILMergeCopyAttributes>https://stackoverflow.com/questions/40906606
复制相似问题