Dynamics crm 有没有办法增加Dynamics CRM服务器调用的超时值?

Dynamics crm 有没有办法增加Dynamics CRM服务器调用的超时值?,dynamics-crm,dynamics-crm-4,Dynamics Crm,Dynamics Crm 4,我正在编写一个简单的应用程序来测试CRMSDK提供的Linq查询功能 我的代码很简单 var before = DateTime.Now; var crm = new Stub.Xrm.MyDataContext("MyCRM"); var contact = crm.contacts.FirstOrDefault(); var span = new TimeSpan(DateTime.Now.Ticks-before.Ticks); Conso

我正在编写一个简单的应用程序来测试CRMSDK提供的Linq查询功能

我的代码很简单

     var before = DateTime.Now;
     var crm = new Stub.Xrm.MyDataContext("MyCRM");
     var contact = crm.contacts.FirstOrDefault();
     var span = new TimeSpan(DateTime.Now.Ticks-before.Ticks);
     Console.WriteLine("The name is " + contact.name);
     Console.WriteLine("It took " + span.Seconds + " seconds to run this program " );
运行大约需要一分钟,但它起了作用。 然后我尝试查询不同的实体,例如account,我得到了

Unhandled Exception: System.Net.WebException: The operation has timed out

我怀疑发生这种情况是因为我的帐户比联系人多,所以处理帐户查询需要更长的时间。我正在尝试将app.config上的超时值增加,但没有成功

应用程序中不会发生超时。超时发生在服务器端。因此,你可以在那里增加它

您一次加载所有记录并仅获取序列中的第一条记录,是否有特殊原因

你不应该有一个带有
如果您的系统中有500k个帐户,查询将返回所有帐户(包括所有已填写的属性)。

您可以在CRM的web.config中增加超时值。

要增加CRM超时,可以使用两种方法:

  • 服务器端
    看看这个
  • 客户端
    如果使用服务代理作为连接场景,则可以设置Timeout属性。以下是示例:

    _serviceProxy.EnableProxyTypes()
    变量超时=新的时间跨度(0,10,0);//增加10分钟
    _serviceProxy.Timeout=超时;

    希望这有帮助


  • 据我对Linq的理解,crm.contacts语句不会返回所有记录。在调用.FirstOrDefault()之前,不会执行它。因此,linq提供者将整个语句转换为类似于从contacts中选择top(1)*的内容;无论如何,我举的例子只是想测试Linq是否有效。事实证明,启动时间非常慢,但在第一次查询后不到一秒钟。我现在想知道为什么启动时间这么长。