部署到其他服务器时,线程不起作用

时间:2016-03-08 15:17:09

标签: multithreading dynamics-crm-2011

我创建了一个网页,用户可以上传一个文件,其中包含插入Microsoft Dynamics CRM 2011中潜在客户表的数据。

现在奇怪的是,当我部署到我们的测试环境时,应用程序似乎运行良好,但绝对没有导入任何行。在我的开发环境中它运行得很好。

在尝试查找错误一段时间后,我创建了一个不使用线程运行应用程序的设置(基本上是Thread.Run),然后插入所有潜在客户。如果我切换回使用线程,它根本不插入任何引线,尽管我没有应用程序错误。

使用SQL Server Profiler时,我可以在dev(它与线程一起工作)中看到所有insert语句都在运行。在测试环境中进行性能分析时,根本不会运行任何插入语句。

我觉得有一些服务器问题或设置导致了这种行为,但谷歌搜索时我并没有真正得到任何帮助我的结果。

我有点希望有人认识到这个问题。我没有太多使用线程的经验,所以这可能是我需要经历的一些路障。

我无法完全显示我的代码,但这基本上就是我启动线程的方式:

    for (int i = 0; i < _numberOfThreads; i++)
    {
      MultipleRequestObject mpObject = new MultipleRequestObject() { insertType = insertType, listOfEntities = leadsForInsertionOrUpdate[i].ToList<Entity>() };
      Thread thread = new Thread(delegate()
      {
        insertErrors.AddRange(leadBusinessLogic.SaveToCRMMultipleRequest(mpObject));           
      });

      thread.Start();
      activeThreads.Add(thread);
    }

    // Wait for threads to complete
    foreach (Thread t in activeThreads)
      t.Join();

我像这样初始化我的crm连接(它从web.config读取连接字符串 - &gt; connectionstrings)

public CrmConnection connection { get; set; }
private IOrganizationService service { get; set; }
public CrmContext crmContext { get; set; }

public CrmGateway()
{
  connection = new CrmConnection("Crm");
  service = (IOrganizationService)new OrganizationService(connection);
  crmContext = new CrmContext(service);
}

0 个答案:

没有答案