目前,我遇到了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。 –