代码改变世界

“此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。”

2016-12-19 16:43  四毛的家  阅读(1430)  评论(1编辑  收藏  举报

自从vs装了Resharper,看见提示总是手贱的想去改掉它。于是乎手一抖,把一个 可视web部件的命名空间给改了。

喏,从LibrarySharePoint.WebPart.LibraryAddEditFolder改为:LibrarySharePoint.WebPartOne.LibraryAddEditFolder

作为老司机,我知道我干了什么,直接用SPD打开目标页面,修正如下:

<%@ Register tagprefix="LibraryAddEditFolder" namespace="LibrarySharePoint.WebPartOne.LibraryAddEditFolder" assembly="LibrarySharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=03b32eb1965185be" %>

将web.config中注册相关代码修正如下(如果你有多台服务器,请在每一台都修改一遍):

<SafeControl Assembly="LibrarySharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=03b32eb1965185be" Namespace="LibrarySharePoint.WebPartOne.LibraryAddEditFolder" TypeName="*" Safe="True" SafeAgainstScript="False" />

再次打开页面,竟然还是报错。好吧,看来许久不玩手生了,逼我放大招了。因为报错页面有其他内容,为了避免影响,所以新建一个webpart页面,尝试将此webpart添加进来,报错如下:

---------------------------

来自网页的消息

---------------------------

此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。

---------------------------

确定

---------------------------

嗯,比较常见的报错,大概知道幺蛾子出在什么地方了,找到下面路径
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\你自己的feature名字\你自己的webpart文件夹名字

比如我的:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\LibrarySharePoint_Feature1\LibraryAddEditFolder

找到xxxx.webpart,用记事本打开,修改如下(如果你有多台服务器,请在每一台都修改):

<?xml version="1.0" encoding="utf-8"?>

<webParts>

<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">

<metaData>

<type name="LibrarySharePoint.WebPartOne.LibraryAddEditFolder.LibraryAddEditFolder, LibrarySharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=03b32eb1965185be" />

<importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>

</metaData>

….. ……

</webPart>

</webParts>

再次访问,完美

(别忘记在vs里也修改你的xxx.webpart文件哦,不然下次部署后还报错~)