-3

情况:

我有 3 个项目的解决方案:

  • 项目一:输入 WCF 服务
  • 项目 2:键入控制台应用程序(托管项目 1)
  • 项目 3:类型控制台应用程序(调用 WCF 服务的方法,有对项目 1 的服务引用)

现在为了调试,我以管理员身份运行项目 2 可执行文件,这将打开服务。然后我运行项目 3 可执行文件来调用 WCF 服务的方法。

问题 1:我想将该服务安装为 Windows 服务,以便它始终可用,这意味着当我想测试/使用该服务的方法时,我可以。如何将 WCF 服务安装为 Windows 服务?

问题2:目前WCF服务有Console.WriteLine语句来显示方法调用的结果。因为此服务托管在项目 2 中,所以 Console.WriteLines 将内容写入项目 2 可执行文件。当 WCF 服务位于 Windows 服务中时,这些 WriteLines 会发生什么?

问题 3:WCF 服务使用 System.Configuration.ConfigurationManager.AppSettings 从 app.config 获取配置值 - windows 服务仍然可以访问 app.config 吗?如果是这样,它如何解决 where/which app.config 使用?

问题 4:如何调试托管在 Windows 服务中的 WCF 服务?

4

1 回答 1

1
  1. 您不会直接将 WCF 服务安装为 Windows 服务。您要么需要在 Web 服务器(如 IIS)中托管服务,要么将服务主机(项目 2)安装为服务。
  2. 输出将被简单地丢弃(请参阅相关问题)。如果您需要保留输出,请实现 log4net 或 NLog 之类的日志库。
  3. Windows 服务仍然可以访问 app.config,并且它遵循与控制台应用程序相同的配置位置语义。有关配置所在位置的更多信息,请参阅此相关问题。
  4. 要调试 Windows 服务,可以使用 Visual Studio 中内置的“附加到进程”功能。有关详细信息,请参阅MSDN 页面
于 2013-09-03T22:21:25.037 回答