我创建了一个.Net应用程序,它允许查询某些Web服务器的IIS日志。 该应用程序调用WCF服务来获取数据。 WCF服务位置具有IIS日志。 WCF服务在内部调用IIS日志文件上的Logparser并返回结果。 有多个IIS日志文件。 如果我一次性对所有这些运行logparser,则需要花费大量时间才能返回,因为有大约30个巨大的IIS日志文件被查询。 我想逐个在每个IIS日志上运行logparser并逐个返回结果。
我正在寻找一个适用于WCF的框架,并允许从WCF服务中逐个数据检索。 所以我想获得IISlogfile1的结果,然后是IISlogfile2的结果,依此类推。 否则UI将不得不等待很长时间才能一次性获得完整结果。
您是否了解任何允许从WCF服务中逐个部分检索数据的现有框架?
PS:我的解决方法是多次调用该服务,每个IIS日志文件一次,直到它响应所有数据都被发送。但我正在寻找一个更清洁的解决方案。
答案 0 :(得分:0)
Souvik basu,
我不确定这是否有帮助,但你可以这样做。
首先调用WCF服务以获取您拥有的文件数。
然后在内部循环中,使用文件名调用WCF服务,并使用gridview + jqgrid或某些异步调用magic绑定它们。
通过这种方式,您可以异步进展和显示数据,并且您的延迟会更少。您的WCF服务也将减少负载。
希望我明白我的观点。
答案 1 :(得分:0)
This question似乎与您的情景非常相关,看看Steven Cheng的回答是否对您有所帮助。他的答案的要点是你可以尝试Duplex services服务器在完成处理每个日志文件时可以调用客户端。
修改强>
另请查看SignalR框架以在服务器和客户端之间建立持久连接,这样您就可以在完成处理时从服务器发送通知(在您的案例日志文件中) 。 An example here