遇到一个非常奇怪的问题,我自定义了一个页面显示特定的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");
------解决思路----------------------
按钮可以实现的话,那你也可以做成让这个页面自动更新啊,定时几秒钟更新一次就行了