【问题标题】:Monitor data sent to windows service through windows form通过windows窗体监听发送到windows服务的数据
【发布时间】:2012-03-20 15:06:52
【问题描述】:

我有一个安装在服务器上的 Windows 服务并充当等待来自其他客户端(服务器客户端)的请求的服务器,当它收到请求时它会处理它并将发送给它的数据记录在文本文件中并回复向客户端确认后,其他充当客户端的 Windows 服务将数据发送到服务器,并将发送的数据和接收的确认记录在另一个文本文件中。

我需要有 Windows 窗体来监视服务器和客户端之间传输的数据。

ex: 当服务器 win 服务收到请求消息时,win 表单将显示在文本区域中,并且当 win 服务回复并确认时也会显示在文本区域中。

我如何使用 C# 实现这一点

提前致谢

【问题讨论】:

  • asp.net 在哪里出现?服务器/客户端使用什么协议?
  • 我用的是TCP/IP,windows服务是用C#实现的

标签: c# windows-services client-server


【解决方案1】:

考虑到您明确要求 Windows 窗体应用程序,我不明白 asp.net 是如何落入这一点的,但我离题了。有两种合乎逻辑的方式,

1) 你的 winform 监控来自服务器 windows 服务的日志文件并附加到一个文本框

2)您修改服务器窗口服务以将数据传递到窗口窗体 - 一个伪日志服务器。

【讨论】:

  • 第一个解决方案并不完美,因为我记录了处理请求消息的每个步骤,所以我需要添加一个分隔符,并且每次记录新消息时我都需要阅读所有行以确定收到的最后一条消息或发送,我推迟这个选项,直到找到最佳选项,所以解释更多关于第二个选项
  • @ahmy 您可以保留已处理的字节位置,通过 FileSystemWatcher 列出文件更改,并仅读取/处理日志文件中的新数据。
  • 是的,这是优化@thinkdevcode 建议的第一个解决方案的一个很好的解决方案,但是除了监控记录的数据之外还有其他最佳解决方案吗?
  • 我有一个新想法,即以 win 表单创建 WCF 服务,win 服务调用此 WCF,然后将数据传递给它,WCF 以 win 表单显示它,但是如何实现?如何在 win 应用程序中托管 WCF 以及当此 WCF 服务未运行时 win 服务将尝试连接到它并检测它是否正在运行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多