wuyijie 发表于 2015-9-28 07:13:00

sharepoint调试EventHandler经验小计

  微软的Visual Studio 2008 开发工具为sharepoit开发带来很大的方便,特别工作流的开发调试,让你立马将Visual Studio 2005 扔到垃圾桶去。
  某天,我轻易答应了一件事:
  “某部门每月都要收集下面机构报上来的空白单据领用数,这是用EXCEL填报的,那么某部门就有一个人每月汇总一下这些领用表,效率可想而知是很低的。我吹嘘说这是小事一桩,于是接了这个事。”
  真是说易做难,我的做法是用Infopath表单让下属机构填报,然后在后台捕捉ItemAdded和ItemDeleting事件(不让他们修改,太烦啦),在事件中登记或退回本月领用数。
  调试是这样的:
  1. gacutil /i MyEventHandler.dll
  2. 使用SharePoint Tips Utility Pack注册事件
  3. 使用vs2008附加到w3wp.exe(托管类型),打开页面开始调试。
  问题出现了:
  A. 程序运行跟vs2008中显示的源代码流程走向不一致,就是说符号表不对。
  B. 有时附加上了w3wp.exe,但是说当前断点不会到达,这是怎么回事。
  第一个问题就是w3wp.exe的.net runtime的池子里的MyEventHandler.dll跟我修改过的程序版本不一致,最简单的办法是:
  (1)gacutil   /uf   MyEventHandler
  (2)iisreset
  (3) gacutil /i   新的dll
  第二个问题后来我想明白了,就是w3wp.exe的进程空间中没有MyEventHandler.dll,那怎么才能让它有呢?办法就是想办法让它load进内存,再来附加w3wp.exe,那就可以啦。我是打开页面,填一个表单,让事件发生一次,MyEventHandler.dll就会调进内存。因为.net运行时可能会卸下MyEventHandler.dll,如果时间太长,你可能又附加不上去。
页: [1]
查看完整版本: sharepoint调试EventHandler经验小计