2009-04-20 53 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"); 
    } 
} 
} 
相關問題