Sharepoint Web部件:无法找到/注册为安全类型

Geo*_*Ego 11 sharepoint web-config web-parts safecontrols

我有一个SharePoint Web部件(实际上只是一个"Hello World"应用程序),我刚刚创建并且部署它时遇到问题.我签署了.dll,创建了.dwp,并在web.config中将其注册为安全控件.我可以将它添加到Web部件库并为其添加详细信息; 但是,当我尝试将其添加到页面时,我收到以下错误:

无法显示或导入此页面上的Web部件或Web窗体控件.无法找到该类型或未注册为安全类型.

以下是我的.dwp文件:

<?xml version="1.0"?>
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
   <Assembly>SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=################</Assembly>
   <TypeName>MyWebParts.SimpleWebPart</TypeName>
   <Title>My Simple Web Part</Title>
   <Description>A simple Web Part</Description>
</WebPart>
Run Code Online (Sandbox Code Playgroud)

和我添加到web.config的条目:

<SafeControl Assembly="SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=################" Namespace="MyWebParts" TypeName="*" Safe="True" />
Run Code Online (Sandbox Code Playgroud)

我也尝试使用通配符作为命名空间,但没有帮助.我甚至尝试将web.config信任级别设置为"Full"(我不会在生产中做,但试图尝试缩小问题范围)并且仍然没有运气.有任何想法吗?谢谢.

Ari*_*iel 33

一种可能性是类型名称与.webpart文件不同步.对于前者

.webpart文件中:

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <type name="Namespace.Class1, $SharePoint.Project.AssemblyFullName$" />
Run Code Online (Sandbox Code Playgroud)

并在.cs文件中:

namespace Namespace
{
    public class Class2 : WebPart
Run Code Online (Sandbox Code Playgroud)

并在SharePointProjectItem.spdata文件中:

  <SafeControl Assembly="Class2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9385058ce1ee51a9" Namespace="Namespace" TypeName="*" Safe="True" SafeAgainstScript="False" />
Run Code Online (Sandbox Code Playgroud)

你明白了:三重检查所有项目工件的名称一致性.


Kyl*_*man 4

您是否使用 SharePoint 解决方案(.wsp 文件)部署 Web 部件? 如果您还没有,请查看WSPBuilder 。我们还使用SharePoint Installer 两者之间,部署中的很多问题(无论是人为错误还是其他原因),比如您的问题已经在我们的环境中得到解决。