私はWindows Server上でMEAN(Angular 2)アプリケーションを使用しています。 私はサーバー上でiisnodeを使ってアプリケーションを実行します。 アプリケーションは正常に動作しますが、ノード(powershell.exe)を使用して子プロセスを生成しようとします。すべてがローカルでうまく動作します(powershellスクリプトは正常に実行されます)。しかし、サーバURLからテストすると、子プロセスは決して生成されません。 エラーメッセージはありません。アプリはちょっと一時停止します。 "node server.js"というコマンドプロンプトからnode.jsを実行すると、次のように表示されます。http://myserver.com:9000この場合、アプリケーションは正常に動作し、子プロセスが正常に生成されます。子プロセスはiisnodeで生成されません
私はの絶対パスを入れようとしましたが、powershell.exeは動作しません。
はlocalhost:9000:子プロセスを生成しますアプリの作品、ANSは細かい
myserver.com:9000に動作します:アプリの作品、子プロセスを生成しますANSは罰金
myserver.comの作品/:アプリの作品、子プロセスが出現しなくなり、エラーメッセージ
はここに私のweb.config ファイルません:
<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>
そして、ここではの.js ルートは、私が子供のプロセスを生成どこからだ:
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();