2017-07-06 17 views
0

私は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(); 

答えて

1

は最後に、たpowershell.exeが正しく産卵されたと思われました。 しかし、PowerShellスクリプトはPowerpointを開いて、その中でいくつかのアクションを実行することになっていました。その部分は動作しないだろう、とPowerShellは、このエラーが発生します:

Insufficient memory to continue the execution of the program

ここで示唆されているようにこれは、DCOMの設定を変更することで解決した。How to deploy COM object Microsoft.Office.Interop to IIS so that my C# WCF service reference will work?

関連する問題