Sharepoint 2010 通过 wsp 将控制注册为安全

Posted

技术标签:

【中文标题】Sharepoint 2010 通过 wsp 将控制注册为安全【英文标题】:Sharepoint 2010 register control as safe through wsp 【发布时间】:2011-04-22 21:45:02 【问题描述】:

我使用 VS2010 创建了一个“Hello World”Sharepoint 2010 解决方案。它只包含一个功能和一个包含标签的 Web 部件。我在 VS2010 的 Web 部件的“属性”窗口中将 Web 部件注册为安全控件。

当我将解决方案部署到本地服务器时,一切正常!我可以将 webpart 添加到页面中,并且在 web.config 文件中我的控件被添加到 SafeControls 列表中。当我在不同的服务器上安装相同的解决方案时,我可以在可用 Web 部件列表中看到该 Web 部件,但是当我尝试将它添加到页面时,它告诉我它没有注册为安全的。当我检查 web.config 文件时,我的控件没有条目。如果我手动添加一个(来自我的开发服务器的那个),一切都会开始工作。

现在,我想知道为什么我安装 wsp 文件时控件没有注册。 wsp 内的清单包含以下行:

<Assemblies>
<Assembly Location="abc.TestWebPart.dll" DeploymentTarget="GlobalAssemblyCache">
  <SafeControls>
    <SafeControl Assembly="abc.TestWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e262c75e6f6e8440" Namespace="abc.TestWebPart.VisualWebPart1" TypeName="*" />
  </SafeControls>
</Assembly>

非常欢迎任何想法!

【问题讨论】:

如果您转到管理中心 > 系统设置 > 管理另一台服务器上的场解决方案,您的 wsp 是否显示为已部署? 是的,解决方案部署正确,在配置文件的安全部分手动添加控件后,我可以使用这些控件。 遇到了同样的问题,知道吗? 遇到同样的问题,不知道如何在本地重新生成 【参考方案1】:

检查拼写错误和版本差异。

【讨论】:

我遇到了同样的问题,我在 wsp 清单中的条目是正确的,因为我在 web.config 中手动粘贴了相同的条目并且它可以工作。还有其他提示吗?【参考方案2】:

您是否为网络应用激活了该功能?

【讨论】:

【参考方案3】:

我知道的迟到的答案。

我认为您的 SafeControl 标记中缺少“Safe="TRUE" ”。

正确代码:

<Assemblies>
  <Assembly Location="abc.TestWebPart.dll" DeploymentTarget="GlobalAssemblyCache">
    <SafeControls>
      <SafeControl 
        Assembly="abc.TestWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e262c75e6f6e8440" 
        Namespace="abc.TestWebPart.VisualWebPart1" 
        TypeName="*"
        Safe="TRUE" 
      />
    </SafeControls>
  </Assembly>
</Assemblies>

【讨论】:

以上是关于Sharepoint 2010 通过 wsp 将控制注册为安全的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 SharePoint 2010 wsp 并包含已构建为 DLL 和强签名的 Web 部件

在sharepoint server 2010中激活.wsp文件时出错

将 SharePoint 2013 WSP(Web 部件)迁移到 SharePoint 2019(本地)[关闭]

powershell 从SharePoint场下载所有SharePoint wsp解决方案。

powershell 这将获取SharePoint场中的所有WSP。我用这个来下载所有的WSP。

[SharePoint 2010] SharePoint 2010 部署收回和删除解决方案----STSADM和PowerShell