我收到來自Sharepoint客戶端託管對象模型的超時。Sharepoint客戶端模型 - 請求超時
Microsoft.SharePoint.Client.ServerException: The operation has timed out.
基本上,我正在批量處理100個更新並一次發送它們。如果需要時間,對我來說沒有問題,但我真的想要避免超時異常。
我嘗試了百萬種方法來增加客戶端上下文中的超時,但他們都沒有成功。我使用反射來嘗試標識共享點在調用客戶端上下文的executequery方法時正在執行的操作。共享點基本上是創建一個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
}
但我仍然收到超時錯誤!
請問我還有什麼其他的東西嗎?
任何援助將不勝感激。
好的,但您如何獲得SPWebApplication? – Vroomfundel 2013-09-30 14:41:53
嗨添加引用sharepoint.administration – 2013-09-30 18:43:01
最好的解決方案是使用服務器對象模式,而不是客戶端對象模型。使用服務器對象模型,你將不會面臨這些問題,並不需要調整/更改SP設置,你會避免很多頭痛。 – Zakos 2015-05-06 08:05:31