我写了一个运行在Windows服务上的websocket服务器程序,根据项目需要调用一个DLL。该DLL需要读取我的计算机在文档下生成一个文件。但是,名为DLL的Windows服务程序可以成功执行,但DLL无法读取我的文档下的文件。当服务器未作为Windows服务运行时,DLL可以成功读取我的文档下的文件。我很沮丧,我不知道为什么。谁能帮助我。谢谢
答案 0 :(得分:0)
当多个用户使用同一台PC时,每个普通用户都有一个My Document
目录,并且无法访问其他用户的My Document
。
当您运行服务时,默认情况下它以本地系统或本地服务的身份运行,这些用户是受限用户,并且无权访问您的My Document
目录。
您必须考虑:该服务如何从您PC中的所有其他用户中选择文件的用户?
简单的解决方案是以您的用户身份运行服务。您可以通过打开服务属性(在服务上,右键单击并选择“属性”,或双击),选择登录标签,并手动填写帐户用户名和密码作为您的用户名和密码。
真正的解决方案是将文件放置在%LocalAppData%\AppName
之类的固定位置,而不依赖于任何用户。