我正在研究可视化Web部件。我在VS2010中创建了一个sharepoint项目,并为其添加了一个可视化Web部件。构建并部署。我能够看到添加的Web部件,我可以将其拖到现场的任何页面上。
现在我创建了一个重定向到同一站点的新解决方案(第一个解决方案指向的站点)。为它添加了一个可视化Web部件。构建它并部署了。当我看到网站时,虽然我可以将新的webpart添加到页面但是从先前的解决方案添加的webpart会抛出错误。
Web部件错误:无法显示或导入此页面上的Web部件或Web窗体控件。找不到类型TestWebPart1.Testwebpart.Testwebpart,TestWebPart1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 02dc69d4b9065085,或者它未被注册为安全。
看起来我无法使用多个解决方案来处理单个网站。我可以理解这个吗?
答案 0 :(得分:0)
我不确定是不是这样;这是一个理论:
您可能已经创建了具有相同命名空间和名称但在不同解决方案中的Web部件。
那是怎么回事;第一个解决方案为webpart的二进制文件提供了一个唯一的id,如“1”,另一个给出了“2”。
因此,第一个部署的Web部件的二进制文件被Id =“2”的二进制文件覆盖,因为它们具有相同的名称,但二进制文件的唯一ID是较新的id。
所以第一个控件正在寻找Id =“1”的二进制文件,但找不到它。 这可能是您收到的错误。
你必须改变名字。 如果是这种情况,请告诉我,我将对您可以使用的命名约定添加一些注释。
答案 1 :(得分:0)
这通常意味着您的webparts程序集未在sharepoint web.config中的safecontrols中注册,或者您没有创建强类型程序集
在安全控制中注册
要修复位于sharepoint服务器的iis根网站中的web.config,通常的路径就像
C:\的Inetpub \ wwwroot的\ WSS \ VirtualDirectories \ 80 \ web.config中
在< SafeControls>中添加以下内容:节
<SafeControl Assembly="TestWebPart1.Testwebpart.Testwebpart, TestWebPart1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=02dc69d4b9065085" Namespace="TestWebPart1" TypeName="*" Safe="True" AllowRemoteDesigner="True" />
签署程序集
http://msdn.microsoft.com/en-us/library/ms247123(v=vs.80).aspx