Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 错误:在Azure上写入ENOTSUP_Node.js_Azure_Express_Azure Web App Service - Fatal编程技术网

Node.js 错误:在Azure上写入ENOTSUP

Node.js 错误:在Azure上写入ENOTSUP,node.js,azure,express,azure-web-app-service,Node.js,Azure,Express,Azure Web App Service,我尝试在Azure WebApps服务中使用群集,但出现错误 Error: write ENOTSUP 我在下面附加我的源代码,源代码由web.config文件执行 const cluster = require('cluster'); const os = require('os'); if (cluster.isMaster) { const cpus = os.cpus().length; console.log(`Forking for ${cpus} CPUs`);

我尝试在Azure WebApps服务中使用群集,但出现错误

Error: write ENOTSUP
我在下面附加我的源代码,源代码由web.config文件执行

const cluster = require('cluster');
const os = require('os');

if (cluster.isMaster) {
  const cpus = os.cpus().length;

  console.log(`Forking for ${cpus} CPUs`);

  for (let i = 0; i < cpus; i++)
    cluster.fork();

  cluster.on('exit', (worker, code, signal) => {
    if (code !== '0' && !worker.exitedAfterDisconnect) {
      console.log(`Worker ${worker.id} crashed. Starting a new worker...`);
      cluster.fork();
    }
  });

  process.on('SIGUSR2', () => {
    const workers = Object.values(cluster.workers);

    const restartWorker = (workerIndex) => {
      const worker = workers[workerIndex];
      if (!worker)
        return;

      worker.on('exit', () => {
        if (!worker.exitedAfterDisconnect)
          return;
        console.log(`Exited process ${worker.process.pid}`);
        cluster.fork().on('listening', () => {
          restartWorker(workerIndex + 1);
        });
      });

      worker.disconnect();

    };

    restartWorker(0);
  });

} else {
  require('./bin/www');
}
 <iisnode watchedFiles="web.config;*.js" devErrorsEnabled="true" nodeProcessCountPerApplication="0" />
const cluster=require('cluster');
const os=要求('os');
if(cluster.isMaster){
常量CPU=os.cpus().length;
log(`Forking for${cpus}cpus`);
for(设i=0;i{
如果(代码!='0'&&!worker.exitedAfterDisconnect){
log(`Worker${Worker.id}崩溃。正在启动新的Worker…`);
cluster.fork();
}
});
process.on('SIGUSR2',()=>{
const workers=Object.values(cluster.workers);
常量restartWorker=(workerIndex)=>{
const-worker=workers[workerIndex];
如果(!工人)
回来
worker.on('exit',()=>{
如果(!worker.exitedAfterDisconnect)
回来
log(`Exited process${worker.process.pid}`);
cluster.fork().on('listening',()=>{
餐馆工人(工人指数+1);
});
});
worker.disconnect();
};
餐馆工人(0);
});
}否则{
要求('./bin/www');
}
Azure是否支持WebApps中的群集? 如果没有,有哪些选择


谢谢,Michael。

群集在Azure Web应用程序上不受支持,因为它不支持使用命名管道。在GitHub上查看此线程:


您可以选择使用Azure云服务Azure虚拟机

我也有类似的问题,在研究期间,我发现如果您想在节点应用程序中使用群集,就不能使用本机节点群集。但是,如果您的计算机有多个CPU核心,并且您希望进行平衡,则可以在web.config文件中添加这一行

const cluster = require('cluster');
const os = require('os');

if (cluster.isMaster) {
  const cpus = os.cpus().length;

  console.log(`Forking for ${cpus} CPUs`);

  for (let i = 0; i < cpus; i++)
    cluster.fork();

  cluster.on('exit', (worker, code, signal) => {
    if (code !== '0' && !worker.exitedAfterDisconnect) {
      console.log(`Worker ${worker.id} crashed. Starting a new worker...`);
      cluster.fork();
    }
  });

  process.on('SIGUSR2', () => {
    const workers = Object.values(cluster.workers);

    const restartWorker = (workerIndex) => {
      const worker = workers[workerIndex];
      if (!worker)
        return;

      worker.on('exit', () => {
        if (!worker.exitedAfterDisconnect)
          return;
        console.log(`Exited process ${worker.process.pid}`);
        cluster.fork().on('listening', () => {
          restartWorker(workerIndex + 1);
        });
      });

      worker.disconnect();

    };

    restartWorker(0);
  });

} else {
  require('./bin/www');
}
 <iisnode watchedFiles="web.config;*.js" devErrorsEnabled="true" nodeProcessCountPerApplication="0" />

  • 节点处理计数应用程序

    此设置控制启动的节点进程数 每个IIS应用程序。默认值为1。您可以启动任意多个 通过将node.ex设置为0,将其作为VM vCPU计数。推荐的 对于大多数应用程序,该值为0,因此您可以在上使用所有vCPU 你的机器。Node.exe是单线程的,因此一个Node.exe占用一个 最多1个vCPU。以获得节点的最大性能 应用程序,您想使用所有vCPU吗

读这个

设置此值并重新部署应用程序(需要一些时间刷新)后,您可以通过转到应用程序服务->监视器部分->Process explorer来检查“Process explorer”。在这里,您可以找到应用程序服务当前使用的核心数