1

我有一个沙盒解决方案并使用 Linq-to-Sharepoint 访问一些列表。现在我将一个事件接收器附加到列表类型101,因为我必须限制一些上传到图片库的文件。这工作正常。

但是现在,当我尝试将新项目插入列表时,我的 Linq-to-Sharepoint 会引发错误(仅使用 Linq,如果我通过常规用户界面在该列表上创建新项目,它可以正常工作)。

错误0x81020089与消息The sandboxed code execution request was refused because the Sandboxed Code Host Service was too busy to handle the request.有关,但消息只是默认值,因为主机服务不太忙,0x81020089 是事件接收器的问题。

如果我不附加事件接收器,一切正常,但是当我这样做时会发生错误 - 即使事件接收器中根本没有代码。

有任何想法吗?


错误信息

0x81020089 沙盒代码执行请求被拒绝,因为沙盒代码宿主服务太忙,无法处理请求。

服务器堆栈跟踪

  • 在 Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
  • 在 Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(字符串 bstrUrl,字符串 bstrListName,布尔 bAdd,布尔 bSystemUpdate,布尔 bPreserveItemVersion,布尔 bUpdateNoVersion,Int32 和 plID,字符串和 pbstrGuid,Guid pbstrNewDocId,布尔 bHasNewDocId,字符串 bstrVersion,对象和 pvarAttachmentNames,对象和 pvarAttachmentContents,对象和 pvarProperties、布尔 bCheckOut、布尔 bCheckin、布尔 bMigration、布尔 bPublish、字符串 bstrFileName、ISP2DSafeArrayWriter pListDataValidationCallback、ISP2DSafeArrayWriter pRestrictInsertCallback、ISP2DSafeArrayWriter pUniqueFieldCallback)
  • 在 Microsoft.SharePoint.SPListItem.AddOrUpdateItem(布尔 bAdd,布尔 bSystem,布尔 bPreserveItemVersion,布尔 bNoVersion,布尔 bMigration,布尔 bPublish,布尔 bCheckOut,布尔 bCheckin,Guid newGuidOnAdd,Int32 和 ulID,对象和 objAttachmentNames,对象和 objAttachmentContents,布尔抑制AfterEvents,字符串文件名)
  • 在 Microsoft.SharePoint.SPListItem.UpdateInternal(布尔 bSystem、布尔 bPreserveItemVersion、Guid newGuidOnAdd、布尔 bMigration、布尔 bPublish、布尔 bNoVersion、布尔 bCheckOut、布尔 bCheckin、布尔 suppressAfterEvents、字符串文件名)
  • 在 Microsoft.SharePoint.SPListItem.Update()
  • 在 Microsoft.SharePoint.SPListItem_SubsetProxy.Update__Inner()
  • 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
  • 在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage 消息,Int32 methodPtr,布尔 fExecuteInContext)
4

2 回答 2

2

将以下内容放入注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC

该密钥必须存在。你不需要一个值。此外,您必须将该密钥放在运行沙盒代码主机服务的每个注册表中。一旦你这样做,我建议你重新启动机器。

这是一篇关于这个问题的很棒的博客文章。 http://blogs.msdn.com/b/sharepointdev/archive/2011/02/08/error-the-sandboxed-code-execution-request-was-refused-because-the-sandboxed-code-host-service-太忙了,无法处理请求.aspx

于 2013-02-22T20:03:34.870 回答
0

我遇到了同样的问题,问题是 ItemUpdating 事件接收器上发生的错误(对象引用未设置为对象的实例)。调试应该告诉你缺少什么。

当您使用 linq to sharepoint 时,AfterProperties 只是由代码更改的属性,这与 UI 更新不同,其中所有属性都将被视为已更改

于 2014-09-06T19:53:21.387 回答