J'ai une application MEAN (Angular 2) fonctionnant sur un serveur Windows. Je cours mon application avec iisnode sur le serveur. L'application fonctionne bien, mais à un moment donné, j'essaie de générer un processus enfant avec un nœud (powershell.exe). Tout fonctionne correctement localement (le script powershell s'exécute avec succès) mais lorsque je le teste à partir de l'URL du serveur, le processus fils ne se reproduit jamais. Je n'ai aucun message d'erreur, l'application s'arrête un peu. Lorsque j'exécute node.js à partir de l'invite de commande avec "node server.js" et que je vais à: http://myserver.com:9000 alors l'application fonctionne correctement et le processus fils engendre avec succès.Le processus enfant n'apparaît pas avec iisnode
J'ai essayé de mettre le chemin absolu de powershell.exe mais cela ne fonctionne pas non plus.
localhost: 9000: application fonctionne, pontes enfant processus ans fonctionne très bien
myserver.com:9000: application fonctionne, pontes enfant processus ans fonctionne bien
myserver.com/: application fonctionne, enfant processus ne se reproduit pas, aucun message d'erreur
Voici mon web.config fichier:
<configuration>
<system.webServer>
<!-- indicates that the hello.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="server">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Et voici les .js itinéraire d'où je Spawn l'enfant processus:
child = spawn("powershell.exe",[`some commands`]);
child.stdout.on("data",function(data){
console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
console.log("Powershell Script finished");
//some other commands
});
child.stdin.end();