改用HttpModule的方式,即可以实现,又可以调试。

具体步骤:

1.先为你的文档建立一个数字列,叫“浏览数”。

2.新建一个类库,我起名叫HitsCount,添加引用Microsoft.SharePoint,System.configuration以及System.Web

然后,将Class1.cs改名为HitsCountModule.cs

3. HitsCountModule.cs中内容如下

moss文档浏览次数统计(转)using System;
moss文档浏览次数统计(转)
using System.Collections.Generic;
moss文档浏览次数统计(转)
using System.Text;
moss文档浏览次数统计(转)
using System.Web;
moss文档浏览次数统计(转)
using Microsoft.SharePoint;
moss文档浏览次数统计(转)
using Microsoft.SharePoint.WebControls;
moss文档浏览次数统计(转)
moss文档浏览次数统计(转)
namespace HitsCount
 

原文是用PreRequestHandlerExecute我用PreRequestHandlerExecute是捕获不到我用word打开的.docx文件,于是我改用ResolveRequestCache方法后,解决。

4.建立强名称。右键项目-》属性-》签名-》把为程序集签名勾上,然后在下面下拉菜单中点“新建”,在弹出来的对话框中把“使用密码保护密钥文件”的小勾去掉,随便输入一个名字,确定。编译

5. 把编译好的dll拖入c:\windows\assembly目录下。也就是加入GAC,我是建立了一个bat文件,部署方便,bat文件内容如下

moss文档浏览次数统计(转)"%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -uf HitsCount
moss文档浏览次数统计(转)
"%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -if bin\Debug\HitsCount.dll
moss文档浏览次数统计(转)
moss文档浏览次数统计(转)iisreset
moss文档浏览次数统计(转)

 

6.修改web.config文件,我的是在D:\Inetpub\wwwroot\wss\VirtualDirectories\80下,查找<httpModules>,在此节点下添加

<add name="HitsCount" type="HitsCount.HitsCountModule, HitsCount, Version=1.0.0.0, Culture=neutral, PublicKeyToken=239ba512823b3816"/>

其中PublicKeyToken值会不太一样,需要修改,可以在c:\windows\assembly下找到你拖进去的那个dll查属性就可以看到了。要么你就用Reflector来看吧。

 

完了后,在命令行输入iisreset重启IIS就完成了。

 

如果需要调试,直接在VS里,调试-》附加进程-》然后选择w3wp.exe。就可以设置断点并调试了。如果有多个w3wp.exe,可以在命令行下用iisapp命令来识别。

 

总结

这个方法虽然实现了浏览数的统计,可是也有一个问题,就是我们的“浏览数”是一个普通的列,用户只要有一定的权限就能修改这个列的值。

相关文章: