无法评估list.update()上显示的异常和拒绝访问

时间:2012-08-28 11:30:24

标签: c# sharepoint sharepoint-2010 sharepoint-2007 moss

我在sharepoint 2007网站上添加了usercontrol。当我添加一个项目时,它会被添加,因为我是网站管理员。但是,当我的朋友尝试登录时,它会抛出“无法评估表达式bcoz代码已优化或本机框架位于堆栈顶部”在list.update()上,并且在网站上显示“拒绝访问”错误。

以下是代码:

protected void btnOk_Click(object sender, EventArgs e)
{   
    try
    {             
        using (SPSite site = new SPSite("http URL"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                SPList list = web.Lists["List name"];
                UserItem = list.Items.Add();
                UserItem["col 1"] = Data1;
                UserItem["col 2"] = Data2;
                UserItem["col 3"] = Data3;
                UserItem["col 4"] = Data4;
                UserItem["col 5"] = Data5;
                UserItem.Update();
                list.Update();
            }
        }
    }
}

我还尝试了以下网址:

但即使这样也行不通。

1 个答案:

答案 0 :(得分:0)

当您的朋友没有所需的优势时,可能会发生这种情况。对于您是网站管理员来说,每件事情都可以。您需要做的一件事是修改您的btnOk_Click代码,如下所示。

 SPSecurity.RunWithElevatedPrivileges(delegate()
 {
   using (SPSite site = new SPSite("http URL"))
    {
        using (SPWeb web = site.OpenWeb())
        {  
            web .AllowUnsafeUpdates = true;
            SPListItemCollection listitems = web.Lists["List name"].Items;
            SPListItem userItem = listitems.Add();
            userItem ["col 1"] = Data1;
            userItem ["col 2"] = Data2;
            userItem ["col 3"] = Data3;
            userItem ["col 4"] = Data4;
            userItem ["col 5"] = Data5;
            userItem.Update();               
            web .AllowUnsafeUpdates = false;
        }
    }
  });

试试这个...希望它能奏效。