2011-05-20 61 views
0

我正在编写一个简单的应用程序来测试CRMSDK提供的Linq查询功能。有没有办法增加Dynamics CRM服务器调用的超时值?

我的代码很简单。

 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 "); 

花了大约一分钟的时间运行,但它的工作。 后来我尝试查询不同的实体,如账号,我得到了

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

我怀疑这是因为我有更多的帐户,然后接触,所以它需要较长的时间来处理帐户查询。我试图增加在我的app.config超时值,但没有奏效。

回答

0

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

是否有特殊的理由,你为什么会在一次加载所有记录,并采取第一序列的?

如果系统中有500k个帐户,则查询将返回所有这些帐户(包括所有填充的属性),因此您绝对不应该有unbounded result set. 的请求。

+0

为了我对Linq的理解,crm.contacts语句不会带回所有记录。在调用.FirstOrDefault()之前它不会被执行。所以,linq提供程序将整个语句翻译成类似select(1)*的联系人;无论如何,我给出的例子只是试图测试Linq是否有效。事实证明,启动时间非常缓慢,但在第一次查询后不到一秒钟。我现在想知道为什么启动时间如此之长。 – 2011-05-21 18:57:51

0

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

相关问题