问题标签 [sandbox-solution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3590 浏览

sharepoint - 如何在沙盒解决方案中创建包含 Web 部件的 Web 部件页面

我知道它可以在沙盒解决方案中创建一个 wiki 页面:

但是我如何(如果可能)在我的文档库中创建一个包含 webpart 的 webpart 页面?因为我能找到的(像这样)只在农场解决方案中工作。有什么解决方法吗?

注意:我在这里发布这个问题是因为这里的比 Sharepoint 网站上的人多。

0 投票
1 回答
1540 浏览

sharepoint - 沙盒 SharePoint 解决方案的错误处理策略

我希望为使用沙盒 Web 部件的 SharePoint 解决方案开发错误处理策略。我最初是在查看基于本文的一般异常处理方法,但这不适用于沙盒 Web 部件。一旦在沙箱中引发了未处理的异常,用户代码服务就会获得控制权,因此不会达到基础 Web 部件中的异常处理。沙盒解决方案是否有任何既定的错误处理方法?

是否有人知道确定沙盒 Web 部件中何时引发未处理异常的方法,如果只是为了将显示的错误消息更改为更用户友好的消息?我想替换标准的“ Web 部件错误:部分信任应用程序域中的沙盒代码包装器的 Execute 方法引发了未处理的异常:发生了意外错误。 ”消息至少。

谢谢,魔术师安迪。

0 投票
1 回答
1969 浏览

sharepoint - 将沙盒解决方案 Webpart 添加到 Sharepoint 2010 中的页面时出错

我已经编译了一个沙盒 webpart 并将其部署到 Sharepoint 2010 服务器。但是,当我尝试将其添加到页面时,出现以下错误

部分信任应用程序域中的沙盒代码包装器的 Execute 方法引发了未处理的异常:$Resources:core,ImportErrorMessage

我在下面包含了我的沙盒 Webpart 代码。我不知道如何解决此错误,或找出导致问题的原因

}

0 投票
1 回答
3894 浏览

sharepoint-2010 - 部署步骤中发生错误添加解决方案

我正在开发沙盒解决方案 SharePoint 2010(SharePoint Online 项目)。

我得到的错误是

我在 Visual Studio 中的清单文件(Package.package)看起来像这样

如果我从“解决方案”元素中删除“CodeAccessSecurity”标签,则解决方案将从 VS 部署和激活,没有任何问题。我无法从网络激活解决方案,我试过了。

该解决方案包含一个 Web 部件,它使用 LINQ 从其他列表中获取数据 + 在列表中创建一个新的列表项。

我在“解决方案”中添加了“CodeAccessSecurity”标签,因为没有它我得到一个错误

当代码尝试创建新列表项时,我收到上述错误。

我正在使用沙盒可视化 Web 部件。

如果我从“解决方案”中删除“CodeAccessSecurity”子元素但我无法创建新的列表项,则该解决方案被激活,没有任何问题。我正在使用 LINQ to SharePoint 创建一个新的列表项

0 投票
3 回答
3446 浏览

visual-studio-2010 - Sharepoint 何时首选沙盒解决方案?

我一直在参考许多文章,这些文章显示了 SharePoint 沙盒解决方案和农场解决方案之间的比较,以及 Visual Studio 2010 下的 Visual Web 部件(基于农场)和 Web 部件(沙盒解决方案)的演示,看起来像是基于农场的开发(使用 Visual Studio)它的部署是开发人员更喜欢的方式。如我错了请纠正我

此外,沙盒解决方案受限于农场解决方案。因此,在什么情况下开发人员更愿意使用沙盒方式开发/部署解决方案?

0 投票
2 回答
989 浏览

sharepoint - Sharepoint 事件接​​收器和 linq 到 sharepoint

我有一个沙盒解决方案并使用 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)
0 投票
1 回答
4107 浏览

sharepoint - SPUserCodeSolutionExecutionFailedException

我有一个带有 webpart 的简单沙盒解决方案(它通过 Linq 加载数据,但这不是我认为的重点),并且在我的开发机器上一切正常。

当我在另一台机器上安装此解决方案并将 web 部件添加到页面时,出现以下异常。但我不知道为什么以及该怎么做,我认为这与我的解决方案无关,因为我在堆栈跟踪中看不到对我的应用程序的任何引用。

任何想法?


Web 部件错误:部分信任应用程序域中的沙盒代码包装器的 Execute 方法引发了未处理的异常:发生了意外错误。

[SPUserCodeSolutionExecutionFailedException:部分信任应用程序域中沙盒代码包装器的 Execute 方法引发了未处理的异常:发生了意外错误。]

服务器堆栈跟踪:

在 Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext、Boolean shouldUsageLog、Int32 currentProcessId)

在 Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext、Boolean shouldUsageLog、Int32 currentProcessId)

在 Microsoft.SharePoint.UserCode.SPUserCodeAppDomain.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext、Boolean shouldUsageLog、Int32 currentProcessId)

在 Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcessProxyForShim.ExecuteInternal(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcessProxy.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext)

在 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 msg,Int32 methodPtr,布尔 fExecuteInContext)

在 [0] 处重新抛出异常:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)

在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)

在 Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.ExecuteDelegate.EndInvoke(IAsyncResult 结果)

在 Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、SPUserToken userToken、String currentAffinity、SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodePoolableProcessConnection.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、SPUserToken userToken、字符串关联、SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodeExecutionHost.Execute(类型 userCodeWrapperType,Guid siteCollectionId,SPUserToken userToken,字符串亲和性,SPUserCodeExecutionContext executionContext)

在 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 msg,Int32 methodPtr,布尔 fExecuteInContext)

在 [1] 处重新抛出异常:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)

在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)

在 Microsoft.SharePoint.Administration.ISPUserCodeExecutionHostProxy.Execute(键入 userCodeWrapperType,Guid siteCollectionId,SPUserToken userToken,字符串 affinityBucketName,SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.Execute(键入 userCodeWrapperType,SPSite 站点,SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.<>c_ DisplayClassa.b _9()

在 Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated 安全代码)

在 Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.ExecuteRequestInSandBox(HttpContext 上下文、SPWeb web、SPWebPartManager 管理器、SPUserCodeWebPart userCodeWebPart)

[NullReferenceException:对象引用未设置为对象的实例。]

服务器堆栈跟踪:

在 Microsoft.SharePoint.Utilities.SPThreadContext.get_UserCodeContext()

在 Microsoft.SharePoint.Utilities.SPThreadContext.get_Items()

在 Microsoft.SharePoint.Utilities.SPThreadContext.Get(字符串键)

在 Microsoft.SharePoint.Utilities.SPThreadContext.GetT

在 Microsoft.SharePoint.Library.SPRequest.Dispose(布尔处理)

在 Microsoft.SharePoint.Library.SPRequest.Dispose()

在 Microsoft.SharePoint.SPWeb.InvalidateRequest()

在 Microsoft.SharePoint.SPWeb.Invalidate()

在 Microsoft.SharePoint.SPWeb.Close()

在 Microsoft.SharePoint.SPSite.Close()

在 Microsoft.SharePoint.SPSite.Dispose()

在 Microsoft.SharePoint.SPSite_SubsetProxy.Dispose__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 msg,Int32 methodPtr,布尔 fExecuteInContext)

在 [0] 处重新抛出异常:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)

在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)

在 Microsoft.SharePoint.SPSite_SubsetProxy.Dispose()

在 Microsoft.SharePoint.SPSite.Dispose__Inner()

在 Microsoft.SharePoint.SPSite.Dispose()

在 Microsoft.SharePoint.UserCode.SPUserCodeWebPartWrapper.Execute(SPUserCodeExecutionContext executionContext)

在 Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.ExecuteWrapper(SPUserCodeWrapper 包装器,SPUserCodeExecutionContext executionContext)

在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)

在 System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage 消息,IMessageSink replySink)

在 [1] 处重新抛出异常:

在 System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(消息 reqMsg,布尔 bProxyCase)

在 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(对象未使用,消息数据和 msgData)

在 Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.CodeToExecuteWrapper.EndInvoke(IAsyncResult 结果)

在 Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute(类型 userCodeWrapperType、SPUserCodeCachedAssemblyGroup userAssemblyGroup、Guid siteCollectionId、Byte[] binaryUserCodeToken、Byte[] proxyOperationToken、SPUserCodeExecutionContext executionContext、Boolean shouldUsageLog、Int32 currentProcessId)

0 投票
1 回答
1939 浏览

sharepoint-2010 - SharePoint 文件上传工作流程的方法

我正在开发一个基本上是文件上传“向导”的项目,它基本上执行以下操作:

  1. 用于选择文档库并输入一些基本信息的输入表。
  2. 输入其他特定于库的信息。
  3. 配合一些日历活动。

我的目标是: - 使用 Visual Studio 将其创建为沙盒解决方案 - 尽可能避免黑客攻击和重新发明现有功能。

我遇到的一些可能有用的 SP 功能: - 内容管理器功能。- 协会表格。- 声明性工作流程。

我考虑过的可能方法:

  1. 在提交时启动工作流程的内容管理器库。不确定用户体验如何。真的希望保持一个链接 -> Next -> Next -> Done 的方法。
  2. 具有包含所有复杂性的自定义操作的声明性工作流。
  3. 每个库的内置文档上传表单前面的关联表单以及日历事件的后续关联表单。

这可行吗?如果可行,哪种方法最简单?

0 投票
2 回答
918 浏览

sharepoint - 通过沙盒解决方案中的代码更改 webpart 中的属性

这是我在场解决方案中保存 Web 部件属性的方式

工作正常。

现在我必须在沙盒解决方案中实现相同的目标,但没有SPLimitedWebPartManager可用的。

那么如何通过沙盒解决方案 webpart 中的代码更改 webpart 属性?

0 投票
1 回答
552 浏览

c# - SharePoint 沙盒化自定义工作流活动,可根据多个条件从另一个列表中获取价值

我正在尝试编写一个沙盒化的自定义工作流活动,该活动将转到另一个列表并根据多个其他字段的组合值获取一个字段的值。

清单 A

  • 状态 - 查找状态列表
  • 城市 - 查找城市列表
  • 人口 - 数量
  • ...其他列

(基本上州和市的组合使该行唯一可识别)

清单 B

  • 公司 - 查找公司列表
  • 状态 - 查找状态列表
  • 城市 - 查找城市列表
  • 影响人口百分比 - 数量(百分比)
  • 受影响的人口 - 数字字段(由自定义活动工作流程填写)
  • ...其他列

约束:

  • 由于唯一/不同的权限,我无法将公司字段添加到列表 A
  • 查找字段需要保持查找字段,不能转换为单行文本字段。
  • 由于这些字段属于查找类型,因此我无法将它们与简单的计算列连接起来。
  • 解决方案必须是沙盒而不是农场。我们不允许部署 dll,只能部署 .wsp

问题: 我需要的是在添加/更改的列表 B 项目上触发的沙盒自定义工作流活动。触发时,活动从列表 B 中的项目中获取州和城市值,转到列表 A 并搜索相同州和城市的组合。找到后,它会抓取相关的人口。最后,它将人口乘以“影响人口百分比”的百分比,并将结果粘贴到“受影响的人口”字段中。

奖励: 在某些时候,我还需要一个沙盒自定义工作流活动,该活动在列表 A 项目更改(人口字段)上触发。当特定州+城市组合的人口发生变化时,活动将转到列表 B 并更新所有公司(多行)满足相同州+城市的所有“受影响人口”字段。

提前致谢!