C# 是否从Windows服务和控制台应用程序访问相同的运行代码?

C# 是否从Windows服务和控制台应用程序访问相同的运行代码?,c#,.net,architecture,windows-services,.net-2.0,C#,.net,Architecture,Windows Services,.net 2.0,我有一个作为Windows服务和c库程序集.dll构建的应用程序。为了管理和维护此服务,我想添加运行命令行应用程序的功能,该应用程序可以告知服务上次存档文件的时间、计划下次存档的时间、上次运行的状态以及服务创建的文件的位置 编写可以与其他应用程序共享数据的服务和库的最佳体系结构是什么?我使用的是.net 2.0。我使用WCF,并为我想要支持的命令/事件创建契约定义。让我想起我过去应用过的选项: 将信息保存到数据库中 如果你手头有 实施 服务器上的状态监视器类型线程 客户端可以连接的服务 通过TC

我有一个作为Windows服务和c库程序集.dll构建的应用程序。为了管理和维护此服务,我想添加运行命令行应用程序的功能,该应用程序可以告知服务上次存档文件的时间、计划下次存档的时间、上次运行的状态以及服务创建的文件的位置


编写可以与其他应用程序共享数据的服务和库的最佳体系结构是什么?我使用的是.net 2.0。

我使用WCF,并为我想要支持的命令/事件创建契约定义。

让我想起我过去应用过的选项:

将信息保存到数据库中 如果你手头有 实施 服务器上的状态监视器类型线程 客户端可以连接的服务 通过TCP/IP等访问和查询。
一个相当简单的方法是将这些信息存储在两个应用程序都可以访问的本地配置/文本文件中。或者甚至可以将其放在注册表项中。

最好的架构可能是使您的服务成为一个服务器,可以报告其状态以及您想要的任何信息。像ocdecio建议的那样使用WCF将使它变得非常简单。

进程间通信在.net中发生的方式是通过远程处理,即使两个进程都在同一台机器上。其他响应建议了不需要远程处理的进程间通信的替代方案。

+1在查询简单的tcp、RPC、web服务或其他数据时,只需让服务提供该数据和任何其他数据

我会让它变得很普通-就像

查询体标识符
将响应作为字符串和返回值或其他指示器,表明服务不知道您在说什么,无法获取信息或返回信息

非常好的答案。不过,我应该提到我使用的是VS.net2.0。那么为什么要否决这一点呢?所有可行的方法。嘘。如果答案错了,一定要投票否决,并在评论中解释原因;但没有任何理由,这只会伤害更多的知识。这可能是忍者的否决票。看起来每个回答这个问题的人都有一个。我以前的公司也有类似的服务/用户界面应用程序架构。工作得很好。