多个用户同时写入sharepoint列表,并发问题

时间:2014-06-06 12:07:42

标签: sharepoint

我正在尝试将一些数据添加到SharePoint Foundation 2013中的SharePoint列表。网站集的所有页面都会尝试写入同一列表。

当前访问页面时,添加到列表的数据已损坏。

这是我的代码

<script type="text/c#" runat="server">
    public string username = SPContext.Current.Web.CurrentUser.Name;
            static readonly object _object = new object();
    public string CurrentTime;

     protected void Page_Load(object sender, EventArgs e)
    {


        SPSite MySite = SPContext.Current.Site;
            SPWeb MyWeb = MySite.OpenWeb();
            MyWeb.AllowUnsafeUpdates = true;
            // Fetch the List
            SPList ClientList = MyWeb.Lists["NameOfThePage"];
            lock (_object) {

                    SPListItem itemToAdd = ClientList.Items.Add();
                    itemToAdd["UserName"] = username;
                    itemToAdd["DateVisited"] = prevTime;
                    itemToAdd["TimeSpent"] = duration;
                    itemToAdd["PageName"] = prevPage.Replace(".aspx", " ");
                    itemToAdd["Title"] = Page.Title;                        
                    itemToAdd.Update();                         


                      } 
        }
            }
                                                                                           //ignore          

    }

我尝试过使用lock()但是没有给出理想的结果。我认为因为_object是每个案例的新实例。请建议我如何克服这一点。

0 个答案:

没有答案