【问题标题】:Silverlight 5 - WCF Service Call - CompletedEvent argument e has an errorSilverlight 5 - WCF 服务调用 - CompletedEvent 参数 e 有错误
【发布时间】:2014-08-11 11:05:28
【问题描述】:

我有一个 Silverlight 应用程序 (Silverlight 5),并通过常规基本服务进行通信以进行正常操作(不涉及数据库)。

问题:-

在调用服务之前,我只显示加载(忙碌指示器控件),然后调用服务。一旦它从服务中返回(在完成的事件中),我曾经隐藏忙碌指示器并执行其他必需的操作。

就我而言,Service 成功执行所有逻辑并在最多 2 分钟内返回 true。但在那之后,放置在完成事件中的逻辑并不总是被执行。

注意:在 3 次中 2 次有效,一次失败。即 2 次它完美地执行了逻辑,有时它什么也不做,只显示进度条。没有这样的模式。

另外一个重要因素是 IE7 和 Chrome 总是可以工作,IE8 我们有这个问题。有时它有效有时无效。非常不一致!!!

我检查了我的代码,似乎没有错误,并且服务器端的服务方法一直在完美执行。

我已经对 timwout 参数 Client 和 Service 进行了交叉验证,没有问题,只是为了让您知道我还有另一个操作需要大约 6 分钟才能在同一个应用程序中正常工作。

任何想法都将受到高度赞赏。

技术细节:Silverlight 5、WCF、浏览器内应用、无数据库交互。

【问题讨论】:

  • 贴出你的代码,没有代码帮助不大

标签: c# wcf silverlight


【解决方案1】:

最后我发现这是由于服务客户端配置文件的接收超时是造成问题的原因。每当它花费超过定义的时间段时,它就不会回来或没有响应,并且 silverlight 不会抛出该错误。增加 ReceiveTimeout 帮助我解决了这个问题。感谢你的帮助。

【讨论】:

    【解决方案2】:

    用“finally”包裹您的服务调用以关闭您的忙碌指示器:

    try
    {
       // Notify Busy is true
       // Define Completed
           // OnCompleted
           // Notify Busy is false
       // Make Service call
    
    
    }
    catch (Exception ex)
    {
       // Check for Timeout
       // Handle Error
    }
    finally
    {
       // Notify Busy is false if Exception
    }
    

    【讨论】:

    • 感谢指导!!这对 Musters 有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多