【问题标题】:Silverlight WCF service timing out (even when passing one item)Silverlight WCF 服务超时(即使传递了一项)
【发布时间】:2010-09-29 04:23:51
【问题描述】:

我创建了一个被 silverlight 应用程序使用的 wcf 服务。我们正在使用该服务来取回地理数据:

  1. 一个点(由 X 和 Y 双精度组成)
  2. 以列表形式表示的形状>

我们的一个服务方法返回一个“Items”集合,其中包含一个“Object ItemData”属性。根据我们从数据库中获取的数据,ItemData 属性设置为 Point 或 List>

由于某种原因,我们可以在任何时候尝试传递列表时获取单点对象> 服务超时。我们最大化了配置中的缓冲区,但没有解决任何问题。我将服务更改为仅返回 List> 中的一项,但它仍然会引发错误。甚至将列表转换为使用数组,但没有运气。

关于可能发生什么的任何想法?我没有在 WCF 服务中看到任何异常。提琴手也没有太大帮助:-\

【问题讨论】:

    标签: silverlight wcf bing-maps


    【解决方案1】:

    您是否更改了 WCF 服务的 sendTimout 属性?

    你能调试服务吗?也许它失败了。您可以将服务行为修改为 includeExceptionDetalInFaults。

    您可以制作一个在服务器上运行的 shell 程序,只是为了执行 get List 用例并查看它是否成功完成。

    你从 Fiddler 那里得到了什么?它会返回任何东西吗?

    【讨论】:

    • 我可以调试服务。它执行得很好,我得到了 return 语句。我在主体周围添加了一个尝试捕获,并且在返回之前没有捕获到异常,因此看起来那里的东西是有序的。我在提琴手中看到的只是来自 Silverlight 的服务请求调用,没有响应。
    • 尝试让合约返回列表中的第一个值(实数值类型,如 int 或 double)。也许 WCF 不喜欢你的返回类型?
    • 您的解决方案是我在更改返回类型时所暗示的,仅供参考
    【解决方案2】:

    结果证明解决方案很简单。必须在 ServiceContract 中指定其他已知类型。

    在我的经理建议我们手动通过 DataContractSerializor 传递返回值后,最终解决了这个问题。找到 PITA 错误,但希望这可以帮助某人。

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      相关资源
      最近更新 更多