c++ - 称为 DLL 的 C++ Windows 服务程序无法正常工作
问题描述
我写了一个运行在Windows服务上的websocket服务端程序,根据项目需要,调用了一个DLL。这个DLL需要读取我的电脑在我的文档下的一个文件。但是,名为DLL的windows服务程序可以成功,但是DLL无法读取我的文档下的文件。当服务器不作为windows服务运行时,DLL可以成功读取我的文档下的文件。我好郁闷,不知道为什么。谁能帮帮我。谢谢
解决方案
当多个用户使用同一台 PC 时,每个普通用户都有一个My Document
目录,并且无法访问其他用户的My Document
. 当您运行服务时,它默认作为本地系统或本地服务运行,它们是限制用户,并且无权访问您的My Document
目录。
您必须思考:该服务如何从您 PC 中的所有其他用户中选择应该从中获取文件的用户?
简单的解决方案是以您的用户身份运行服务。您可以通过打开服务属性(在服务上,右键单击并选择属性,或双击),选择登录选项卡,然后将帐户用户名和密码填入您的用户名和密码来手动尝试。
一个真正的解决方案是将文件放在一个固定的位置,例如%LocalAppData%\AppName
,不依赖于任何用户。
推荐阅读
- c# - ComboBox 在 DisplayMember 和 ValueMember 中重复相同的值
- typescript - TypeScript 一种基于接口的可选构造函数参数的更好方法
- laravel - 新用户使用默认注册码注册时 Laravel 运行代码
- ios - 在 SwiftUI 中的 onDelete 执行中添加 func
- jwt - 为什么我无法验证我的 Azaure AD JWT 签名?
- javascript - Cookie 不在页面之间传输 (JS)
- asp.net-mvc - 图片上传功能对我来说无法正常工作
- go - 为什么使用多个以太网连接会降低 I/O 绑定任务的吞吐量
- c# - C# 调用 Rscript 但没有输出
- wordpress - WordPress 联系表 7 - 用于下拉选择的不同重定向页面