【问题标题】:How to get piece by piece data from WCF service如何从 WCF 服务中获取分段数据
【发布时间】:2012-07-09 11:57:35
【问题描述】:

我创建了一个 .Net 应用程序,它允许查询一些 Web 服务器的 IIS 日志。 该应用程序调用 WCF 服务来获取数据。 WCF 服务位置有 IIS 日志。 WCF 服务在内部调用 IIS 日志文件上的 Logparser 并返回结果。 有多个 IIS 日志文件。 如果我一次性在所有这些上运行 logparser,则返回需要很长时间,因为大约有 30 个巨大的 IIS 日志文件被查询。 我想对这些 IIS 日志中的每一个逐个运行 logparser,并逐个返回结果。

我正在寻找一个在 WCF 上工作并允许从 WCF 服务中逐段检索数据的框架。 所以我想得到 IISlogfile1 的结果,然后是 IISlogfile2 的结果,依此类推。 否则 UI 将不得不等待很长时间才能一次获得完整的结果。

您知道任何允许从 WCF 服务中逐部分检索数据的现有框架吗?

PS:我的解决方法是多次调用该服务,每个 IIS 日志文件一次,直到它响应所有数据都已发送。但我正在寻找更清洁的解决方案。

【问题讨论】:

  • 我目前正在 WCF 中自学,所以请耐心等待,但是如何使方法调用异步以避免锁定客户端?

标签: wcf service logparser piecewise iis-logs


【解决方案1】:

This question 似乎与您的场景非常相关,看看Steven Cheng 的回答是否对您有帮助。他的回答的要点是您可以尝试Duplex services,服务器可以在完成处理每个日志文件后调用客户端。

编辑:

还可以查看SignalR 框架以在服务器和客户端之间建立持久连接,这样您就可以在服务器完成处理时从服务器发送通知(在您的情况下为日志文件)。 An example here.

【讨论】:

    【解决方案2】:

    那么苏维克巴苏,

    我不确定这是否有帮助,但你可以这样做。

    首先调用 WCF 服务以获取您拥有的文件数。

    然后在循环内部,您使用文件名调用 WCF 服务,并将它们与 gridview+jqgrid 或一些异步调用魔术绑定。

    通过这种方式,您可以异步推进和显示数据,并且延迟会更短。您的 WCF 服务的负载也会减少。

    希望我能说清楚。

    【讨论】:

    • 感谢吉格的回复。我目前正在使用异步服务调用并从客户端循环调用它们。但这不是很干净,我正在寻找任何可以允许这种行为的内置框架
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多