【问题标题】:Hosting a WCF service in a windows service - configuration, debugging [closed]在 Windows 服务中托管 WCF 服务 - 配置、调试 [关闭]
【发布时间】:2013-09-03 22:00:12
【问题描述】:

情况:

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

  • 项目 1:键入 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 吗?如果是这样,它如何解决使用哪里/哪个 app.config?

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

【问题讨论】:

  • 一般来说,我们希望这里每个问题都有一个问题。

标签: c# wcf service


【解决方案1】:
  1. 您不直接将 WCF 服务安装为 Windows 服务。您要么需要在 Web 服务器(如 IIS)中托管服务,要么将服务主机(项目 2)安装为服务。
  2. 输出将被简单地丢弃(请参阅this 相关问题)。如果您需要保留输出,请实现 log4net 或 NLog 等日志库。
  3. Windows 服务仍然可以访问 app.config,并且它遵循与控制台应用程序相同的配置位置语义。有关配置所在位置的更多信息,请参阅this 相关问题。
  4. 要调试 Windows 服务,您可以使用 Visual Studio 中内置的“附加到进程”功能。请参阅the MSDN page 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多