SandBox Web部件嵌入SharePoint 2013中的母版页中,给出错误

时间:2013-02-26 20:07:01

标签: sharepoint master-pages sandbox sharepoint-2013

嗯,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)

3 个答案:

答案 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。