3

嗯,SharePoint 2013 对沙盒不太友好。有很多问题。

在 SharePoint 2010 中,我能够使用以下方法成功地将沙盒 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 () 在 Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper 的 Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart.GetWebPartDataForRemoteCall(Object& viewState, Object& controlState)。

4

3 回答 3

2

我已经尝试了很多东西,但似乎您无法将沙盒 Web 部件嵌入到母版页中。但是,场级别的 Webpart 解决方案可以成功地嵌入到母版页中。

我不知道为什么这是这种行为。但是,您可以部署一个嵌入了 SandBox WP 的应用程序页面,并且该应用程序页面可以正常工作。这是非常有趣的行为。

现在,我保持这个问题开放。也许有人会弄清楚这种疯狂。

唯一不好的是您无法将母版页部署到 SharePoint Online(托管),因为它不允许场级解决方案。也许 AppParts、iFrames 或带有后端虚假服务的嵌入式 javascript/jQuery 可能会解决问题,但出于我的目的,我正在考虑更复杂一点。

于 2013-03-21T17:29:23.983 回答
1

我通过在 Register 标签中将引用程序集的版本从 15.0.0.0 更改为 16.0.0.0(或者更确切地说,完全删除程序集名称的版本和关键部分)解决了这个问题(欢呼!)。

基本上我认为第 15 波中有一个错误,在第 16 波中已修复。

唯一的问题是,我的开发环境是第 15 波(我猜其他人也是)。但是从引用标记中删除版本号,它至少不会完全崩溃,只是在 web 部件出现的位置给出错误消息。

于 2013-06-27T12:54:53.243 回答
1

今天在 SP 农场遇到了类似的问题。安装 SharePoint 2013 SP1 后,此问题已修复。如果您遇到这种情况,请检查您的补丁版本。如果小于 15.0.4569,则至少升级到 15.0.4569。

于 2015-01-07T19:56:48.813 回答