SharePoint 2010 Sandbox解决方案不适用于第三方DLL

时间:2015-03-06 05:17:04

标签: c# .net sharepoint sharepoint-2010

我在SharePoint 2010 Visual Web Part沙箱解决方案中使用第三方库。

我已按照此处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,Version = 4.5.0.0,Culture = neutral,   PublicKeyToken = dccbd7ce7d6a58c0'或其依赖项之一。失败   授予最低权限请求。 (HRESULT的例外情况:   0x80131417)

完全例外

  

System.IO.FileLoadException未被用户代码Message = Can处理   不加载文件或程序集'KellermanSoftware.NET-SFTP-Library,   Version = 4.5.0.0,Culture = neutral,PublicKeyToken = dccbd7ce7d6a58c0'或   其中一个依赖项。无法授予最低权限请求。   (来自HRESULT的异常:0x80131417)Source = CustomFormBuilder
  FileName = KellermanSoftware.NET-SFTP-Library,Version = 4.5.0.0,   Culture = neutral,PublicKeyToken = dccbd7ce7d6a58c0 StackTrace:          在CustomFormBuilder.VisualWebPart1.VisualWebPart1.Upload()          在CustomFormBuilder.VisualWebPart1.VisualWebPart1.ConfirmBtn_OnClick(Object   发件人,EventArgs e)          在System.Web.UI.WebControls.LinkBut​​ton.OnClick(EventArgs e)          在System.Web.UI.WebControls.LinkBut​​ton.RaisePostBackEvent(String   eventArgument)          在System.Web.UI.WebControls.LinkBut​​ton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)          在System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)          在System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)          在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
  InnerException:System.Security.Policy.PolicyException          消息=无法获取所需的权限。          来源= mscorlib程序          堆栈跟踪:               在System.Security.SecurityManager.ResolvePolicy(证据证据,PermissionSet reqdPset,PermissionSet optPset,PermissionSet)   denyPset,PermissionSet&否认,布尔检查执行权限)               在System.Security.SecurityManager.ResolvePolicy(证据证据,PermissionSet reqdPset,PermissionSet optPset,PermissionSet)   denyPset,PermissionSet&否认,Int32& securitySpecialFlags,布尔值   checkExecutionPermission)          的InnerException:

1 个答案:

答案 0 :(得分: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服务器的文件系统中。有关更多信息,请参阅部署沙盒解决方案中的程序集在哪里?。

有关沙比氏溶液的更多有用信息