【问题标题】:.net windows service local application data is different then in normal app.net windows 服务本地应用程序数据与普通应用程序不同
【发布时间】:2023-03-13 03:42:01
【问题描述】:

在普通的控制台应用程序中我有这个

Environment.SpecialFolder.LocalApplicationData 是C:\Users\Simon\AppData\Local\

在 Windows 服务中

Environment.SpecialFolder.LocalApplicationDataC:\Windows\system32\config\systemprofile\AppData\Local\

如何在两种类型的应用程序中指定相同的路径?

【问题讨论】:

    标签: c# windows-services


    【解决方案1】:

    请记住,服务在不同的用户配置文件下运行(可以是 LOCAL_SERVICE、NETWORK_SERVICE 等)如果您希望它们相同,请在您的用户配置文件下运行服务(您可以指定此 ServiceProcessInstaller.Account创建安装程序时的属性,或在 Windows 的服务管理器中)。

    【讨论】:

    • 谢谢。那么什么是最好的解决方案?我有 WS 和它的经理。两者都需要访问设置文件。我应该改用 CommonApplicationData 特殊文件夹吗?还是我应该尝试 ServiceProcessInstaller.Account 属性?我的应用程序将在许多不同的 PC 和帐户上运行...
    • 这是一个可以作为 Windows 服务或桌面应用程序运行的应用程序吗?您可能需要查看 IsolatedStorage,因为它使用程序集名称来存储信息,这取决于其他应用程序是否也需要访问它。
    • 应用程序有两个部分,首先是Windows服务,即使用户没有登录,也可以长时间运行。第二部分是“设置管理器”。这是用于配置第一部分的桌面应用程序 - WS。两个部分都需要访问相同的设置 xml 文件。
    • 您可以将清单添加到服务以在管理员下运行,并将设置文件保留在安装路径中。 (\program files\MyService\service.exe & config.xml) 从那里,假设 windows 应用程序与服务安装路径 (\program files\MyService\settings_manager.exe) 位于同一文件夹中,您可以进行“设置" 应用程序在想要进行修改时也需要管理员。这将允许 win vista/7 机器和类似旧操作系统的权限进行设置更改。
    • 顺便说一句,如果您的服务的可执行文件是 64 位操作系统上的 32 位,那么文件夹是 C:\Windows\sysWOW64\config\systemprofile\AppData\Local。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2012-05-18
    • 2010-12-11
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多