我有一个Web界面,当用户单击按钮时,该界面会调用服务器上的一些批处理文件。使用localhost可以正常工作:但是将应用程序部署到IIS后失败。我已经四处搜寻,似乎找不到解决方法,所以我希望这里有人可以帮助我。
我尝试过的内容
在IIS中,我转到“编辑权限”>“安全性”选项卡>“ IIS_IUSRS”,并尝试完全控制该组。
我还认为这可能是“应用程序池”问题,然后转到“高级设置”并尝试更改应用程序池值。这里也没有运气。出于记录的考虑,我没有尝试将其更改为.NET v4.5(常规或经典),因为它不是.NET应用程序(只是NodeJS,Express和PUG)。
我还尝试将命令包装在其他引号中,例如
XokzhoQlYFGG7ZfTNqdvr0QGMsFF24oSZ5v+vsPDNlPA+GbJ2peAY/7pNhpOerOV
这也不起作用。
因此,为了使该问题保持清晰(并且没有冗长的代码行),我认为我将提供一个简单的示例。部署在IIS上后,如何使以下各项起作用:
'"D:/path/to/batch-file"'
或
var { exec } = require('child_process');
exec('"D:/path/to/batch.bat"', (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
最后,如果您知道在Windows中甚至不使用IIS即可部署应用程序的任何其他方法,请在此处提出这些建议。我考虑过PM2,但仍然需要一种方法来部署应用程序吗?同样,目标是使应用程序可以从服务器外部访问。