我有一个连接到MS CRM的silverlight项目。该项目调用了一个工作流,该工作流执行一些步骤,其中一个步骤是自定义步骤。当调用service.Create(Entity)时,此进程抛出Timeout Exception。
我有一个单元测试,它使用与silverlight项目相同的数据调用工作流程。如果我在尝试Silverlight项目之前运行单元测试,则测试通过。然后我运行silverlight项目并抛出超时异常。如果我在此之后运行单元测试,它也会失败。
没有真正的错误。工作流程步骤就会挂起。
相同的代码在两个环境中。我们的DEV环境就像一场梦。我们的测试环境是所有问题的开始。
有没有人想知道为什么会发生这种情况。
编辑:在单元测试代码之前发生错误。我已将其缩小为ExecuteMultipleRequest。但是,此代码再次在不同的上下文中工作。 两个工作流程,都做同样的事情。一个异步和另一个同步。异步传递,异步不传...
答案 0 :(得分:1)
默认情况下,您将运行的ExeucteMultipleRequests的数量限制为2,因此第一步是确保您不会执行更多操作。
要尝试的另一件事是确保您没有多线程连接到CRM。默认情况下,.Net仅允许每个应用2个http请求。这由配置设置控制。
最后,我创建与CRM的连接后立即执行WhoAmIRequest
,以确保其有效(假设您没有做任何其他请求)在失败之前。)