代码之家  ›  专栏  ›  技术社区  ›  PjL

在Silverlight中添加线程时,CRM提示输入凭据

  •  1
  • PjL  · 技术社区  · 14 年前

    所有这些,就其本身而言,运作得非常好。

    QuestionContext.RetrieveOptions();
    

    ThreadPool.QueueUserWorkItem(delegate {
                                    QuestionContext.RetrieveOptions();
                                 });
    

    不过,当我这么做的时候,我(偶尔)会得到一个凭证提示。取消提示将导致web服务出现“找不到”错误。

    更新: 在提示中提供有效的凭据没有任何效果,提示会重新出现3次,然后返回到“找不到”错误。

    更新: 我用一些错误检查来包装服务调用响应,每次出现“notfound”错误时只需重新发出请求。现在,每当出现凭证提示时,在凭证提示中按cancel最终会得到满足的请求。也就是说,它不会一直失败,重新发出请求的次数不确定最终会导致成功。

    1 回复  |  直到 13 年前
        1
  •  1
  •   chris.w.mclean    13 年前

    我也面临着同样的问题,终于想出了解决办法。关键是在调用它的同一线程上创建CrmService客户机。我有一个CrmService类,它封装了我与crmweb服务的所有交互,并在CrmService ctor中创建了新的crmweb服务。然后我尝试使用后台工作人员对服务进行调用。一旦我将新的crmweb服务移动到与Web服务上的调用相同的线程上,一切都很正常。