SharePoint 2013:SPLong操作超时



目前我在SharePoint 2013中使用SPLongOperation时遇到问题。我有一些自定义逻辑,至少需要 15 分钟来处理,因此我使用 SPLongOperation 来确保它在 6 分钟后不会超时。过去,这段代码适用于 SharePoint 2010。问题是代码执行在 6 分钟后完全停止。附加调试器后,它不会超时,因此不知何故 SPLongOperation 块被忽略或无法正常工作。我用来调用 SPLongOperation 的代码如下:

using (SPLongOperation operation = new SPLongOperation(Page))
{
    try
    { 
        operation.LeadingHTML = html; //adding some custom html...
        operation.Begin();
        // Business Logic
    }
    finally
    {
        operation.End("/page.aspx", SPRedirectFlags.RelativeToLayoutsPage, Context, string.Empty);
    }
}

我在几台机器上看到的具有这段代码的行为是,6 分钟后发生超时,ULS 中出现以下异常:System.Web.HttpException:请求超时。有谁知道可能是什么问题?我正在使用安装了 10 月 CU 的 SharePoint 2013。我还使用 while(true) 语句测试了这个块,以确保业务逻辑不会导致问题。

也有

这个问题,找到这个办法,定义页面的超时,在创建SPLongOp对象之前:

Page.Server.ScriptTimeout = 3600; // specify the timeout to 3600 seconds
 using (SPLongOperation operation = new SPLongOperation ( this .page))
 {
 }

来源: http://shaharpan.wordpress.com/2014/11/20/splongoperation-thread-was-being-aborted-error-in-sharepoint-2013/

托马斯

SPLongOperation 在执行时保持客户端和服务器之间的连接处于打开状态。其目的是通知用户一切正常,但完成要完成的任何内容需要一点时间(2-3 分钟)。

因此,如果您需要运行一个非常长的过程(例如,持续 1 小时),您需要使用其他方式,例如计时器作业。

相关内容

  • 没有找到相关文章

最新更新