【问题标题】:Windows service app.config locationWindows 服务 app.config 位置
【发布时间】:2012-12-28 19:18:23
【问题描述】:

我在 Windows Server 2008 上安装了 C# Windows 服务。我使用 InstallUtil 安装了它。该服务从 app.config 文件中读取一些数据,并且运行良好。你能告诉我安装服务后这个文件在哪里吗? 我找了好几个小时都没找到。

【问题讨论】:

    标签: c# windows-server-2008


    【解决方案1】:

    您可以按照以下步骤验证已安装 Windows 服务的确切位置:

    1. 单击“管理工具”图标下的“服务”图标,调出 Windows 服务列表。您也可以通过在开始菜单下的搜索菜单中键入“查看本地服务”来获取此列表。

    2. 在已安装服务列表中选择您的 Windows 服务,右键单击,然后选择属性。您也可以双击代表服务的行。

    3. 在“属性”对话框中找到“可执行文件路径”值。该值将包括任何命令行参数。

    4. 打开服务可执行文件所在的文件夹。

    如果Windows服务是用.NET Framework构建的,它的配置会保存在对应的.config文件中,即以“.config”为后缀的可执行文件名,例如,如果可执行文件名是“XyzService.exe”,那么 .config 文件的名称将是“XyzService.exe.config”。

    有几点需要注意:

    • 如果您在使用 Visual Studio 在同一台计算机上构建服务后安装该服务,那么 Visual Studio 会从项目中转换 App.config 文件并将其自动放置在构建输出文件夹中(并重命名它适当地使用上述命名约定)。

    • 如果您的计算机设置为在 Windows 资源管理器中隐藏文件扩展名,您将看到 2 个文件“XyzService”和“XyzService.exe”。在这种情况下,“XyzService.exe”是您的配置文件。如果您随后在 Windows 资源管理器中关闭隐藏文件扩展名的选项,您将开始看到“XyzService.exe”和“XyzService.exe.config”。

    • 如果您找不到相应的 .exe.config 文件,则服务中的代码可能正在回退到默认值。在这种情况下,您可以在服务可执行文件旁边放置一个正确命名和格式化的配置文件,然后重新启动服务,一切都会好起来的。

    【讨论】:

    • 很好的答案。正是我需要的。我看了看,果然我的配置文件丢失了。一旦我将它放在与 EXE 相同的位置 - 服务就可以启动了。非常感谢。拯救了我的一天!
    • 同样错误(或至少不完整)。在所有墙上撞到我的头后,我发现我的服务正在使用 C:\Windows\SysWOW64\config\systemprofile\AppData\Local\%MyCompanyName% 中的配置文件,并且它被重命名(其他 . NET 应用程序)user.config.
    【解决方案2】:

    根据Microsoft

    对于客户端可执行文件,应用程序配置文件位于 与应用程序的可执行文件相同的目录,并且具有相同的 作为带有 .config 扩展名的可执行文件的基本名称。

    注意,如果您的 exe 名为 appname.exe,并且您将 Windows 资源管理器设置为隐藏扩展名,那么您的应用程序将显示为 appname,而您的配置文件将显示为 appname.exe(即使真实名称是appname.exe.config)

    正如其他人所指出的,InstallUtil 不对配置文件做任何事情,它应该以与 exe 本身相同的方式复制到服务器。

    【讨论】:

      【解决方案3】:

      它与您使用installutil 工具注册服务的位置相同。

      【讨论】:

      • 我是从 System32 文件夹安装的,但那里没有类似于 app.config 文件的文件
      • 它将是 .exe.config。例如,如果服务应用程序是 abc.exe,则配置将为 abc.exe.config
      • mitte 检查 Windows 资源管理器是否设置为隐藏文件扩展名,如果是,则查找 ServiceName.exe,而不是 ServiceName.exe.config。
      【解决方案4】:

      App.config 很可能被称为{ProjectName}.exe.config,因为它是一个 Windows 服务。检查该文件是否存在以及是否是您要查找的文件。

      【讨论】:

        【解决方案5】:

        您的应用程序(Windows 服务)所在的位置相同。

        检查一下,如果不存在,请将其放在与服务相同的目录中。

        【讨论】:

        • installUtil 只是一个安装工具,它不会改变你的 app.config 的位置。它只是注册windows服务
        【解决方案6】:

        如果您有一个实时环境(从您的问题来看似乎是这样),您可以使用高级 Process Monitor 实用程序检查实际发生的情况。但通常 .config 文件位于 .exe 旁边,并且命名相同。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-12
          • 2011-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-01
          • 2013-09-09
          • 2016-01-11
          相关资源
          最近更新 更多