我正在编写一个简单的应用程序来测试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 " );
运行大约需要一分钟,但它确实有效。 然后我尝试查询不同的实体,如帐户,我得到了
Unhandled Exception: System.Net.WebException: The operation has timed out
我怀疑这种情况发生了,因为我有更多帐户,然后是联系人,因此处理帐户查询需要更长时间。我试图在我的app.config上增加超时值但是没有用。
答案 0 :(得分:0)
您的应用程序中不会发生超时。超时发生在服务器端。因此,可以在那里增加它。
您是否有特殊原因要一次加载所有记录并且仅 第一个序列?
您永远不应该有unbounded result set.的请求 如果您的系统中有500,000个帐户,则查询将返回所有帐户(包括所有已填充的属性)。
答案 1 :(得分:0)
您可以在CRM的web.config中增加超时值。
答案 2 :(得分:0)
要增加CRM超时,您可以使用两种方法:
客户端
如果使用服务代理作为连接方案,则可以设置Timeout属性。以下是样本:
_serviceProxy.EnableProxyTypes();
var timeout = new TimeSpan(0,10,0); //加10分钟
_serviceProxy.Timeout = timeout;
希望这有帮助。