Windows服务app.config位置

时间:2012-12-28 19:18:23

标签: c# windows-server-2008

我在Windows Server 2008上安装了C#Windows服务。我使用InstallUtil安装了它。该服务从app.config文件中读取一些数据,它正在做得很好。安装服务后,您能告诉我这个文件的位置吗? 我一直在找几个小时但找不到它。

6 个答案:

答案 0 :(得分:56)

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

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

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

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

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

  5. 如果Windows服务是使用.NET Framework构建的,则其配置将存储在相应的.config文件中,即后缀为“.config”的可执行文件的名称,例如,如果可执行文件的名称是“XyzService.exe”,然后.config文件的名称将为“XyzService.exe.config”。

    有几点需要注意:

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

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

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

答案 1 :(得分:4)

根据Microsoft

  

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

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

App.config可能被称为{ProjectName}.exe.config,因为它是Windows服务。检查该文件是否存在并且是您要查找的内容。

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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