【问题标题】:How to send a message to a console application from an IIS hosted WCF service如何从 IIS 托管的 WCF 服务向控制台应用程序发送消息
【发布时间】:2012-05-28 16:42:19
【问题描述】:

我开发了一个 WCF 服务,在开发过程中我自己托管在控制台应用程序中,然后最近部署在服务器上的 IIS 中。控制台应用程序提供了一个有用的视图来了解当时系统中发生的情况,现在我想复制它,因为我在 IIS 中托管服务。

我认为最简单的方法是开发一个新的控制台应用程序,它的唯一工作是接收消息并输出它。然后我可以更新我的 WCF 服务的日志方法以将消息发送到新应用程序。

我不希望控制台应用程序始终处于打开状态。我想在需要监控系统当前状态时启动它,但如果我关闭控制台,则保持服务运行。

关于如何最好地实现这一目标有什么想法吗?我在想另一个自托管的 WCF 服务,也许只是让主要服务 ping “localhost:8080/ConsoleLogger?message=abc”。不过看起来有点乱,而且不可扩展(比如将输出放在网页上而不是控制台上,这样我就可以通过网络看到它)。

有什么想法或建议吗?

【问题讨论】:

  • 为什么不使用跟踪和日志记录?
  • @Steven Berkovitz 你告诉我。我在问一个问题,不排除追踪。

标签: c# wcf iis logging console


【解决方案1】:

您可以为此使用 WCF 广播,订阅不同的客户端以接收消息。 http://msdn.microsoft.com/en-us/library/bb756931.aspx

【讨论】:

  • 感谢您的指点 - 它让我找到了正确的方向。
【解决方案2】:

我在这里找到了答案:

http://www.paulrohde.com/building-a-really-simple-wcf-p2p-application/

这是一个关于创建简单的码头到码头聊天室的很棒的教程,它很容易适应我的目的,允许我将控制台应用程序连接到服务器并从多台机器进行监控。

【讨论】:

  • 不幸的是,这个解决方案在 IIS 中不起作用,因为 IIS 不支持 NetPeerTCPBinding。我想我可能不得不把它变成一个 Windows 服务,并在 IIS 和服务器上的 Windows 服务之间进行通信。除非有人能想到我会如何调用通过 NetPeerTCPBinding 进行通信的单独日志记录应用程序?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 2014-05-25
  • 1970-01-01
相关资源
最近更新 更多