嗯,SharePoint 2013不是很适合Sandbox。有很多问题。
在SharePoint 2010中,我能够使用以下功能在主页中成功嵌入Sandbox Web部件:
<WebPartPages:SPUserCodeWebPart runat="server" Description="Description" Title="TITLE"
AssemblyFullName="$SharePoint.Project.AssemblyFullName$" SolutionId="00000000-0000-0000-0000-00000000000"
ID="ID" TypeFullName="Namespace.WP">
</WebPartPages:SPUserCodeWebPart>
但是,当我在SharePoint 2013的母版页中添加它时,我收到以下错误:
ExecuteRequestInSandBox调用失败。 System.NullReferenceException:未将对象引用设置为对象的实例。在Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(PersonalizationScope范围,BinaryWebPartSerializerFlag binaryWebPartSerializerFlags,BinaryWebPartSerializerWriter作家)在Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(SerializationMode模式,BinaryWebPartSerializerFlag binaryWebPartSerializerFlags,BinaryWebPartSerializerWriter作家)在Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart.EnsurePersistedBlobsMatchPropertiesCollection ()at Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.ExecuteRequestInSandBox(HttpContext context,SPWeb web,SPWebPartManager manager,SPUserCodeWebPart userCodeWebPart)中的Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart.GetWebPartDataForRemoteCall(Object&amp; viewState,Object&amp; controlState)
答案 0 :(得分:2)
我尝试了很多东西,似乎你无法将沙箱webpart嵌入到母版页中。但是,服务器场级别的Web部署解决方案可以成功嵌入到母版页中。
我不知道为什么会这样。但是,您可以部署一个嵌有SandBox WP的应用程序页面,应用程序页面可以正常工作。这是非常有趣的行为。
目前,我仍然坚持这个问题。也许有人会弄清楚这种疯狂。
唯一不好的是,您无法将主页面部署到SharePoint Online(托管),因为它不允许使用场级解决方案。也许AppParts,或iFrames,或带有后端虚假服务的嵌入式javascript / jQuery可能会有所帮助,但出于我的目的,我看起来有点复杂。
答案 1 :(得分:1)
我通过将注册程序集的版本从15.0.0.0更改为16.0.0.0(或者更确切地说,在Register标记中删除程序集名称的版本和关键部分)来解决此问题(欢呼!)。
基本上我认为第15波中存在一个错误,在第16波中修复。
唯一的问题是,我的开发环境是第15波(就像我认为的其他人一样)。但是从参考标签中删除版本号,它至少不会完全崩溃,只是给出Web部件出现的错误消息。
答案 2 :(得分:1)
今天在SP农场上遇到类似的问题。安装SharePoint 2013 SP1后,此问题已得到修复。如果您遇到这种情况,请检查您的补丁版本。如果小于15.0.4569,则升级到至少15.0.4569。