【问题标题】:Is app.config file exposed for Windows Service like WCF service web.config file using IIS?是否为 Windows 服务公开了 app.config 文件,例如使用 IIS 的 WCF 服务 web.config 文件?
【发布时间】:2011-12-25 13:30:27
【问题描述】:

我不熟悉创建 Windows 服务来托管 WCF,因为我一直在使用 IIS 来执行此操作。我创建了一个 Windows 服务来托管十几个 WCF 服务,并在 Visual Studio 中设置了一个 app.config 文件来处理每个服务的所有端点和地址。

Windows 服务安装在文件系统的什么位置?有没有办法重新配置配置文件以更改绑定/地址而无需卸载/重新安装服务?

我一直在为使用 IIS 的 WCF 服务的 inetpub 中存在已发布的 web.config 文件执行此操作,我想知道它是否与 Windows 服务相同。

【问题讨论】:

    标签: wcf windows-services web-config app-config


    【解决方案1】:

    您的标题问题的答案是肯定的。 app.config 到 Windows 服务与 web.config 到 IIS 托管 Web 服务是一样的。

    Windows 服务通常作为常规可执行文件部署在产品特定路径中的某个位置。该可执行文件旁边的 app.config 与附加了 .config 的可执行文件同名。所以 ScanService.exe 旁边有一个包含其配置的 ScanService.exe.config。

    【讨论】:

    • 好的,所以如果我在目录 C:\SolutionDirectory 中有一个解决方案,并且我为该服务创建并运行安装程序,它会在哪里?在 bin\Debug 文件夹内?
    • 是的,就是那个位置。启动调试会话可能会有一个小例外。在这种情况下,它只需要从 Windows 服务项目中获取 app.config。
    • @HansGruber 当您在生产环境中安装 Windows 服务时,bin\debug 文件夹中会出现,除非您像这样指定您的结构。
    【解决方案2】:

    Hans,我已经开发/安装了我的分布式服务(.NET 远程处理)作为 Windows 服务,发生的情况是您需要在安装服务时指定文件夹。例如,您选择文件夹为“C:\Program Files\MyService”,那么您的 MyService.exe.config 将安装在与“C:\Program Files\MyService”相同的文件夹中

    这样您就可以找到“C:\Program Files\MyService.exe.config”并修改您的绑定,然后重新启动您的 Windows 服务。

    你考虑的其他点是

    此处不会有 AppPool,因此您在安装服务时使用的任何帐户都将用于运行您的服务。如果您使用简单的域\帐户,您可能需要提供一些额外的权限 如果您需要通过您的服务访问事件日志或注册表。

    或者您可以稍后在安装服务后修改您的服务帐户。

    您有什么特别的原因要离开 IIS 吗?由于我的 WCF 服务也存在于 IIS 中,所以想知道您是否遇到任何问题。

    【讨论】:

    • 据我了解,IIS 本身没有问题,因为这就是我的 WCF 服务现在所在的位置。不幸的是,需要将它们移至 Windows 服务,我认为这可能与能够在 XP 机器上安装这些服务有关。
    • 确实如此,如果您看到我可能处于相同位置的问题,@kroonwijk 会很好地回答它,为客户从 .NET Remoting 升级到 WCF 提供强有力的论据。但如果他们拒绝,那么我可能会遇到同样的情况,我将为 Windwos XP 编写 Windows 服务 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2013-03-27
    • 1970-01-01
    相关资源
    最近更新 更多