Я получаю тайм-аут от управляемой объектной модели клиента Sharepoint.
Microsoft.SharePoint.Client.ServerException: The operation has timed out.
По сути, я собираю 100 обновлений и отправляю их за один раз. Для меня это не проблема, если требуется время, но я действительно хочу избежать исключения тайм-аута.
Я пробовал миллион способов увеличить время ожидания в контексте клиента, но все они были безуспешны. Я использовал отражение, чтобы попытаться определить, что делает точка доступа при вызове метода executequery клиентского контекста. sharepoint в основном создает HttpWebRequest и отправляет его.
Я закончил с приведенным ниже кодом, но все еще безуспешно:
public static void SetInfinteTimeout(this ClientContext ctx)
{
int timeout = 10 * 60 * 1000;
ctx.RequestTimeout = timeout;
ctx.PendingRequest.RequestExecutor.RequestKeepAlive = false;
ctx.PendingRequest.RequestExecutor.WebRequest.KeepAlive = false;
ctx.PendingRequest.RequestExecutor.WebRequest.Timeout = timeout;
ctx.PendingRequest.RequestExecutor.WebRequest.ReadWriteTimeout = timeout;
System.Net.ServicePointManager.DefaultConnectionLimit = 200;
System.Net.ServicePointManager.MaxServicePointIdleTime = 2000;
System.Net.ServicePointManager.MaxServicePoints = 1000;
System.Net.ServicePointManager.SetTcpKeepAlive(false, 0, 0);
ServicePointManager.DnsRefreshTimeout = timeout; // 10 minutes
}
Но я все еще получаю сообщение об ошибке тайм-аута!
Есть ли что-то еще, что я упустил, пожалуйста?
Любая помощь будет принята с благодарностью.