首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将nodejs应用程序用作Windows服务导致EPERM-4048错误

将nodejs应用程序用作Windows服务导致EPERM-4048错误
EN

Stack Overflow用户
提问于 2017-11-28 23:51:48
回答 1查看 136关注 0票数 0

我使用"node-windows“来创建将在windows上运行我的app.js服务器的服务。这是创建服务的代码(使用node-windows模块)-

代码语言:javascript
复制
var Service = require('node-windows').Service;

// Create a new service object 
var svc = new Service({
  name:'Demo Landing Page',
  description: 'The nodejs.org example web server.',
  script: 'app.js'
});

// Listen for the "install" event, which indicates the 
// process is available as a service. 
svc.on('install',function(){
  svc.start();
});

svc.install();

除了下面这一行用于读取目录内容之外,所有脚本都可以正常工作-

代码语言:javascript
复制
fs.readdir([PATH], function(err, builds)

这是我得到的错误-

代码语言:javascript
复制
{Error: EPERM: operation not permitted, scandir [PATH]
  errno: -4048,
  code: 'EPERM',
  syscall: 'scandir',
  path: 'app.js' }

但如果我不是以服务的形式运行-就像-

代码语言:javascript
复制
node app.js

一切正常,权限也很好。

我能做些什么来修复这个问题?或者,在windows服务器上运行nodejs可能还有其他选择?

谢谢!

**我以管理员身份登录,并且有权访问以下目录

EN

回答 1

Stack Overflow用户

发布于 2021-10-12 18:37:57

右键单击服务,打开其属性,检查其在logOn下使用的帐户

或者在上面的服务代码中尝试这样做

代码语言:javascript
复制
svc.logOnAs.domain = 'mydomain.local';
svc.logOnAs.account = 'username';
svc.logOnAs.password = 'password';

或者,您可以直接添加凭据并重新启动服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47535661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档