我以前在MOSS(SharePoint)中的发布基础结构中使用了长时间运行操作功能,并且好奇是否有人知道这是否是支持在SharePoint中进行自定义长时间运行操作的技术。
使用此技术时,您继承自Microsoft.SharePoint.Publishing.Internal.LongRunningOperationJob,这似乎表明它不支持自定义使用,但我似乎记得(也许我曾梦想过?)长时间运行的进程是一个MOSS的市场特征。
有什么想法吗?
答案 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");
}
}
}