目前,我遇到了SharePoint 2013中的SPLongOperation问题。我有一些自定义逻辑至少需要15分钟才能处理,因此我使用SPLongOperation来确保它不会在6分钟。过去,这段代码在SharePoint 2010上工作。问题在于代码执行在6分钟后完全停止。通过附加调试器,它不会超时,所以不知怎的,SPLongOperation块会被忽略或不能正常工作。我用它来调用SPLongOperation的代码如下:SharePoint 2013: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)语句测试了此块,以确保业务逻辑不会导致问题。
检查你的web应用程序的Web .config文件。默认情况下,对于80端口上的Web应用程序,它位于C:\ inetpub \ wwwroot \ wss \ VirtualDirectories \ 80文件夹中。 system.web/httpRuntime标记的executionTimeout属性的值是什么? –
该属性当前未在web.config中显式设置。通常我会期望SPLongOperation覆盖web.config超时设置。 –
我不确定它是否像你说的那样工作。但是你在某种程度上认为这个页面覆盖了这个设置 - 检查C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ TEMPLATE \ LAYOUTS文件夹中的web.config。它的executionTimeout设置为360秒(6分钟)。尝试增加它。另外不要忘记,在更改web.config文件后需要执行iisreset。 –