事件日志中的Webpart注册错误

时间:2020-03-05 18:42:46  来源:igfitidea点击:

我们为SharePoint 2007创建了多个自定义Web部件。它们工作正常。但是,无论何时加载它们,我们都会在事件日志中显示一条错误消息:

error initializing safe control - Assembly: ...

程序集实际上加载正常。另外,它在web.configGAC中正确列出。

关于如何停止这些(幻影?)错误的任何想法将不胜感激。

解决方案

回答

我们需要在web.config文件中添加一个safecontrol条目,请查看以下内容:

<SafeControls>
  <SafeControl
    Assembly = "Text"
    Namespace = "Text"
    Safe = "TRUE" | "FALSE"
    TypeName = "Text"/>
  ...
</SafeControls>

http://msdn.microsoft.com/en-us/library/ms413697.aspx

回答

我也有这个问题。原来我的Manifest.xml文件有问题。在我的程序集的SafeControl标记中,我专门定义了TypeName。当我将TypeName更改为通配符值时,事件日志中的错误消息停止了。

因此,回顾一下:
这在事件日志中导致错误:

<SafeControl Assembly="AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5bac12230d2e4a0a" Namespace="AssemblyName" **TypeName="AssemblyName"** Safe="True" />

这清除了他们:

<SafeControl Assembly="AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5bac12230d2e4a0a" Namespace="AssemblyName" **TypeName="*"** Safe="True" />

回答

听起来安全控制项确实有问题。我会尝试:

在NameSpace和TypeName下使用" *"。在名称空间和typeName中使用通配符会将我们程序集中所有名称空间中的所有类注册为安全。 (我们通常不希望使用第三方工具来执行此操作。)