none
通过代码操作共享点 创建讨论版里面的帖子和回复 RRS feed

  • 问题

  • public void Test()
    
    
    
        {
    
    
    
            SPSite site = new SPSite("http://jianghao:9000");
    
    
    
            SPWeb web = site.OpenWeb();
    
    
    
            using (site)
    
    
    
            {
    
    
    
                using (web) {
    
    
    
                    web.AllowUnsafeUpdates = true;
    
    
    
                    SPList list = web.Lists["Revolution"];
    
    
    
                    //创建帖子
    
    
    
                    SPListItem newItem = SPUtility.CreateNewDiscussion(list.Items, "THIS IS MY TEST  2!");
    
    
    
                    newItem["Body"] = "Welcome to My Discassion2!";
    
    
    
                    newItem.Update();
    
    
    
                    //创建回复信息
    
    
    
                    SPListItem newItemReply = SPUtility.CreateNewDiscussionReply(newItem);
    
    
    
                   newItemReply["Body"] = "My reply this message!";
    
                   newItemReply.Update(); // Operation is not valid due to the current state of the object
    
    
                }
    
    
    
            }
    
    
    
        }
    
    
    
    
    Revolution 事先在sharepoint里面创建好了的!
    newItemReply.Update(); // Operation is not valid due to the current state of the object.
    前面的都执行成功了!
    就是执行到这里报Operation is not valid due to the current state of the object这个错误!

    thanks!

    Anything Is Possible !
    2010年1月22日 11:28

答案

  • 上面的代码在我的机器上执行成功,你试试加上 SPSecurity.RunWithElevatedPrivileges 

    SPSecurity.RunWithElevatedPrivileges(delegate() {

     SPSite site = new SPSite("http://jianghao:9000");



            SPWeb web = site.OpenWeb();



            using (site)

    //...

    });


    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net | Beijing P.R.C
    • 已标记为答案 Jiang Hao 2010年1月25日 1:22
    2010年1月22日 17:57

全部回复

  • 上面的代码在我的机器上执行成功,你试试加上 SPSecurity.RunWithElevatedPrivileges 

    SPSecurity.RunWithElevatedPrivileges(delegate() {

     SPSite site = new SPSite("http://jianghao:9000");



            SPWeb web = site.OpenWeb();



            using (site)

    //...

    });


    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net | Beijing P.R.C
    • 已标记为答案 Jiang Hao 2010年1月25日 1:22
    2010年1月22日 17:57

  • 谢谢 Xiaofeng Wang

    我这样试了,但还是报哪个错误! 


    Anything Is Possible !
    2010年1月23日 12:19
  • 重新创建一个 List 可以再试试可以不?

    甚至重新创建一个站点,站点集在里面试试可以不?

    可以在 12\logs 或者 系统日志中找到相关的详细错误信息吗?


    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net | Beijing P.R.C
    2010年1月23日 15:09
  • 好的!我试试!谢谢!
    Anything Is Possible !
    2010年1月24日 2:12