【问题标题】:SharePoint 2010 Sand box solution does not work with third party DLLSharePoint 2010 沙盒解决方案不适用于第三方 DLL
【发布时间】:2015-05-07 16:50:48
【问题描述】:

我在我的 SharePoint 2010 可视化 Web 部件沙盒解决方案中使用第三方库。

我已经按照此处https://msdn.microsoft.com/en-us/library/vstudio/ee231595(v=vs.120).aspx 的说明使用“高级”选项卡将程序集添加到包中

然后我使用 Visual Studio 2013 将其部署到我的本地农场。

如果我将部署目标设置为 WebApplication

错误 2 在部署步骤“添加解决方案”中发生错误:这 解决方案包含无效标记或无法部署的元素 作为沙盒解决方案的一部分。解决方案的解决方案清单 '54d81981-d8ba-4eca-96a7-a766b4b7fbd1' 验证失败,文件 manifest.xml,第 4 行,字符 65:“DeploymentTarget”属性 无效 - 根据其值“WebApplication”无效 数据类型 'http://schemas.microsoft.com/sharepoint/:SolutionDeploymentTargetType'

如果我选择 GlobalAssemblyCache,它可以工作,但在运行 Web 部件时,会引发此错误

“System.IO.FileLoadException”类型的异常发生在 CustomFormBuilder.dll 但未在用户代码中处理 附加 信息:无法加载文件或程序集 'KellermanSoftware.NET-SFTP-Library,版本=4.5.0.0,文化=中性, PublicKeyToken=dccbd7ce7d6a58c0' 或其依赖项之一。失败 授予最低权限请求。 (HRESULT 的例外情况: 0x80131417)

完全例外

System.IO.FileLoadException 未被用户代码 Message=Could 处理 不加载文件或程序集'KellermanSoftware.NET-SFTP-Library, 版本=4.5.0.0,文化=中性,PublicKeyToken=dccbd7ce7d6a58c0' 或 它的依赖项之一。未能授予最低权限请求。 (来自 HRESULT 的异常:0x80131417)来源=CustomFormBuilder
FileName=KellermanSoftware.NET-SFTP-Library,版本=4.5.0.0, 文化=中性,PublicKeyToken=dccbd7ce7d6a58c0 StackTrace: 在 CustomFormBuilder.VisualWebPart1.VisualWebPart1.Upload() 在 CustomFormBuilder.VisualWebPart1.VisualWebPart1.ConfirmBtn_OnClick(对象 发件人,EventArgs e) 在 System.Web.UI.WebControls.LinkBut​​ton.OnClick(EventArgs e) 在 System.Web.UI.WebControls.LinkBut​​ton.RaisePostBackEvent(字符串 事件参数) 在 System.Web.UI.WebControls.LinkBut​​ton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (字符串 事件参数) 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串 eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)
内部异常:System.Security.Policy.PolicyException Message=无法获得所需的权限。 源=mscorlib 堆栈跟踪: 在 System.Security.SecurityManager.ResolvePolicy(证据证据,PermissionSet reqdPset,PermissionSet optPset,PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) 在 System.Security.SecurityManager.ResolvePolicy(证据证据,PermissionSet reqdPset,PermissionSet optPset,PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean 检查执行权限) 内部异常:

【问题讨论】:

    标签: c# .net sharepoint sharepoint-2010


    【解决方案1】:

    沙盒解决方案无法将 DLL 部署到任何位置(包括 GAC)。错误是设计使然。沙盒的目的是提供一种在 SharePoint 内部运行代码的安全方式,而不会危及整个场的运行状况。沙盒解决方案可以由“用户”上传。沙盒中的任何代码都仅限于一组精简的 SharePoint 功能。

    使用传统的完全信任代码解决方案,并通过您最喜欢的 SharePoint 管理员在您的环境中进行部署。 Visual Webpart 团队也应该在此模型中可用。

    从 MSDN 中查看此参考:

    https://msdn.microsoft.com/en-us/library/office/gg615464(v=office.14).aspx

    组件 - 装配

    指源代码是 Microsoft Visual Studio 沙盒解决方案项目一部分的程序集。 非 SharePoint 程序集不能部署在沙盒解决方案中。沙盒解决方案中的程序集保存在解决方案包 (.wsp) 文件内的内容数据库中。调用时,它们被解包并临时存储在前端 Web 服务器的文件系统中。有关详细信息,请参阅沙盒解决方案中的程序集在哪里部署?

    更多关于 sandbiox 解决方案的有用信息

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 2011-11-20
      • 2011-06-01
      • 2011-03-20
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2013-12-02
      相关资源
      最近更新 更多