【发布时间】:2015-01-08 03:56:48
【问题描述】:
嗯,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:对象引用未设置为对象的实例。 at Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(PersonalizationScope scope, BinaryWebPartSerializerFlag binaryWebPartSerializerFlags, BinaryWebPartSerializerWriter writer) at Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(SerializationMode mode, BinaryWebPartSerializerFlag binaryWebPartSerializerFlags, BinaryWebPartSerializerWriter writer) at Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart.EnsurePersistedBlobsMatchPropertiesCollection () 在 Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart.GetWebPartDataForRemoteCall(Object& viewState, Object& controlState) 在 Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.ExecuteRequestInSandBox(HttpContext context, SPWeb web, SPWebPartManager manager, SPUserCodeWebPart userCodeWebPart)
【问题讨论】:
-
我也有同样的问题,如果你找到了解决办法,可以分享一下吗?
-
你可以参考我的回答。我一直保持这个问题,也许有人会解决这个问题。
-
我现在正在尝试调试它。我正在对程序集进行逆向工程。此行抛出 NRE:
SPAttachedProperty propertyData = this.AttachedProperties.Get(this.m_webPart, pair2.Key + "Resource");m_attachedProperties 为 null,因为 BinaryWebPartSerializer 传递了nullSPWebPartManager并且 Web 部件具有可个性化的属性。我会看看我能做些什么来解决这其中的任何一部分.. -
即使不添加任何属性,也似乎有 22 个可个性化的属性。所以问题是 Web 部件没有 Web 部件管理器。将一个添加到母版页会给出一个错误,即一个已经存在...不确定下一步是什么...?
-
更新,SetWebPartManager 应该在 Web 部件上设置它,从 WebPartManager.OnPageInitComplete (所有内部/隐藏方法)。现在调试它,看看为什么没有发生。
标签: sharepoint master-pages sandbox sharepoint-2013