当前位置: 代码迷 >> SharePoint >> 关于Audit.GetEntries的有关问题
  详细解决方案

关于Audit.GetEntries的有关问题

热度:248   发布时间:2016-05-02 06:56:12.0
关于Audit.GetEntries的问题
本帖最后由 qqq050001004 于 2014-12-12 10:49:33 编辑
遇到一个非常奇怪的问题,我自定义了一个页面显示特定的SharePoint的Audit Log,
当我第一次load页面的时候查询的结果是对的,然后我再开一个IE窗口对Document Library里的文件进行View操作,refresh我的自定义页面却不显示这条最新的Audit Event,refresh几次都不显示。
但是如果我跳转到到其他的页面在后退回来就显示出来了。。。测试了很多次很多个文件都是这样。。。
我查看我自己写的log,不管是refresh页面还是前进后退,都执行了Audit.GetEntries方法,但为什么直接刷新页面查询不出来最新的Audit Eent,在IE里前进后退之后却可以呢?

附上查询的代码片段:

 SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite siteColl = new SPSite(SPContext.Current.Site.ID))
                    {
                        using (SPWeb site = siteColl.OpenWeb(SPContext.Current.Web.ID))
                        {
                            Util.LogIt(1, "GetAuditLogDataTable", "Start get entire site Audit Log ");
                            SPAuditQuery wssQuery = new SPAuditQuery(siteColl);
                            Utils.SetRestrictedQuery(wssQuery);  
                            SPAuditEntryCollection auditCol = siteColl.Audit.GetEntries(wssQuery);
                            Util.LogIt(1, "GetAuditLogDataTable", "Entire site Audit Log count : " + auditCol.Count.ToString());
                            Util.LogIt(1, "GetAuditLogDataTable", "Get entire site Audit Log end");

------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你这么试一下,Ctrl+F5刷新页面看数据会不会更新

Ctrl+F5试过的,不好用,现在唯一的方法是重新开启一个session:1. 关闭浏览器重新开启 或者2. 跳转到另外一个一个页面再后退回来

也可能就是这样的吧
我觉得这个无所谓啊,你是要实时监控吗?

我也觉得没什么问题,但是客户要求变态啊。。。我现在想的办法就是在页面上加一个refresh button,点击button可以重启一个session,但是最好能在查询的时候就直接查出出最新的Audit Event,可惜还没想到办法...

按钮可以实现的话,那你也可以做成让这个页面自动更新啊,定时几秒钟更新一次就行了