开发背景:
使用VS2008开发SharePoint2007的webparts
问题描述:
使用Feature部署webpart后,手动激活和反激活的时候,系统报错并无法执行。
解决办法:
由于这个Feature执行的时候,部署了3个webpart,我们需要使用Process Monitor工具来查看是那个webpart出了问题。
Process Monitor是微软提供的系统调试工具集合,可以从这里下载www.sysinteranls.com或者http://www.cnblogs.com/mybook/archive/2012/11/06/2757597.html下载。
手工执行Feature时,Process Monitor监控到的进程信息如下图所示:
这样我们在确认是这个webpart的问题后,参考SharePoint Server上默认提供的webpart的设置,对自己的开发的webpart做如下调整。
错误的做法:
正确的做法1:
正确的做法1:
feature.xml中的定义跟做法1一样。把所有的webpart文件跟feature.xml放在同一层级的目录下,在elements.xml中不要显式地定义Path属性的值(不需要Path元素)。
经验总结:
1、巧用微软提供的系统工具Process Mornitor。当然你在下载工具包的时候,会发现更多其它的应用。
2、SharePoint定制开发可以参考SharePoint Server上很多功能的模板和样例,本身它就提供了很多样例。
3、手工(active和deactive)和通过stmadm命令来操作features的原理是不一样的,前者通过读取xml文件,后者通过webpart的guid。
4、如果手工在12\TEMPLATE\FEATURES中修改对应的webpart定义文件,记得要重启IIS。