3

我使用 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>

任何想法都非常受欢迎!

4

3 回答 3

0

您是否激活了网络应用程序的功能?

于 2012-08-20T01:43:05.457 回答
0

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

于 2010-10-14T16:18:02.890 回答
0

我知道迟到的答案。

我认为您的 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>
于 2013-04-19T09:43:04.380 回答