2009-04-20 42 views
3

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

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

任何想法?

回答

1

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

+0

感谢您分享您的解决方案,拉尔斯。我可能会坚持使用Publishing Infrastructure选项,因为它是我们可用的最低成本选项。 – 2009-04-21 12:34:04

1

SPLongOperation是一个非常简单的方式做一个长期运行的操作。比Publishing.LongRunningOperationJob简单得多,并使用相同的基础结构。

1

曾经有过如何微软创建漂亮的长时间运行的窗口在SharePoint 2007中的工作原理?

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

开始和结束;

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

下面是一个示例类。

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

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"); 
    } 
} 
} 
相关问题