1

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

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

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

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

4

2 回答 2

0

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

编辑:

还可以查看SignalR框架,以在服务器和客户端之间建立持久连接,因此您可以在服务器完成处理时从服务器发送通知(在您的情况下为日志文件)。这里有一个例子

于 2012-07-09T03:39:46.953 回答
0

那么苏维克巴苏,

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

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

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

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

希望我能说清楚。

于 2012-07-07T13:25:28.947 回答