使用MOSS Publishing Infrastructure支持长时间运行操作

时间:2009-04-20 14:09:23

标签: sharepoint moss

我以前在MOSS(SharePoint)中的发布基础结构中使用了长时间运行操作功能,并且好奇是否有人知道这是否是支持在SharePoint中进行自定义长时间运行操作的技术。

使用此技术时,您继承自Microsoft.SharePoint.Publishing.Internal.LongRunningOperationJob,这似乎表明它不支持自定义使用,但我似乎记得(也许我曾梦想过?)长时间运行的进程是一个MOSS的市场特征。

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

SharePoint定时器作业在MSDN Journal April版中有所描述 http://msdn.microsoft.com/en-us/magazine/dd569748.aspx

答案 1 :(得分:1)

好问题柯克!我最近也经历过在SharePoint中实现长时间运行的作业的需要。但是LongRunningOperationJob不是一个选项,因为它还需要使用普通的WSS 3.0部署。我只是最终从Web请求中生成一个新线程,并重定向到一个ASPX页面,其中启用了AJAX的进度条每隔一秒更新一次。它运行良好,可以根据需要运行。唯一的缺点是IISRESET会彻底杀死它。另一种可能是使用自定义SharePoint计时器作业实现长时间运行的作业。

答案 2 :(得分:1)

SPLongOperation是一种执行长时间运行的非常简单的方法。比Publishing.LongRunningOperationJob简单得多,并使用相同的基础结构。

答案 3 :(得分:1)

有没有想过微软如何在SharePoint 2007中创建漂亮的longrunning进程窗口?

SPLongOperation是要使用的类。它有两个重要的方法

开始和结束;

长时间运行的所有代码都放在开始和结束之间。

以下是示例课程。

这几乎是简单的,只是起作用: - )

using System;
using System.Web;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
namespace CreateLongOperation
{
public class LongRun : System.Web.UI.Page
{
  protected Button buttonOk;

  protected void Page_Load(object sender, EventArgs e)
  {
     buttonOk.Click += new EventHandler(buttonOk_Click);
  }

  void buttonOk_Click(object sender, EventArgs e)
  {
     SPLongOperation operation = new SPLongOperation(this.Page);

     operation.Begin();

     // do long operation code here...
     System.Threading.Thread.Sleep(6000);

     operation.End("http://sps/_layouts/Mynewpage.aspx");
  }
 }
}