我用C#编写了一个ConsoleApplication,其所有工作只是调用dll的一些函数(动态链接库),而Init()就是这些函数之一,它将读取注册表路径为HKEY_CURRENT_USER \ Software \ CompanyName \ ConfigFolder,好吧,此ConsoleApplication目前运行良好。 但是,我被告知要以Windows服务的形式编写相同的功能程序。好的,C#.NET可以方便地编写Windows Services项目。我刚刚复制了我的ConsoleApplication代码并修改了一个小问题。但问题是我发现它不会读取以前的寄存器路径(HKEY_CURRENT_USER \ Software \ CompanyName \ ConfigFolder),因此Init()函数现在不起作用。我想知道Windows服务将读取的正确注册表路径是什么。 PS:我的ConsoleApplication第一次运行时,注册表路径HKEY_CURRENT_USER \ Software \ CompanyName \ ConfigFolder不存在,因此这个Init()函数将搜索名为" config.ini"的配置文件。在当前路径下,之后,它会将该配置写入注册表(HKEY_CURRENT_USER \ Software \ CompanyName \ ConfigFolder)。 Howerver,当我将我的应用程序转换为Windows服务时,无论我将config.ini放入项目当前路径还是C:\ Windows \ System32,它都没有用。我的操作系统是Windows 7。
答案 0 :(得分:2)
它给出的错误是什么?或者它不会出错?如果它是关于注册表的读/写访问权限,请确保您在 LOCALSYSTEM 或管理员
下运行该服务