如何重新启动iisnode?

我们在Windows 2008R2服务器上使用IIS 7.5的iisnode。 node.js应用程序在启动时加载一些configuration数据。 有时configuration数据发生变化,应用程序需要重新启动。

当通过Windows系统pipe理器控制台重新启动IIS站点实例一切工作正常。

当通过appcmd stopappcmd start命令重新启动IIS时,node.js-app不会再次启动。 它看起来像iisnode不能识别IIS的重新启动。

一个iisnode环境中的node.js应用程序如何通过命令重新启动(即通过命令行)?

您可以使用Web.config文件中iisnode元素上的iisnode属性通过IISNode自动回收站点。 我知道这不是通过命令行,但从你的问题,似乎这也可以解决问题,不需要任何人的手动干预。

使用下面的信息,你可以设置IISNode来观察你的configuration文件,并且每当它们改变的时候,IISNode将会回收站点。

来自IISNode Sample Config的评论

watchedFiles – 以分号分隔的将被监视的文件列表; 对文件的更改会导致应用程序回收;

每个条目由一个可选的目录名称和所需的文件名组成,这些名称与主应用程序入口点所在的目录相关;

通配符只允许在文件名部分; 例如:“* .js; node_modules \ foo \ lib \ options.json; app_data * .config.json”

Web.config中的示例iisnode元素将在Web.config更改或应用程序的顶级文件夹中的任何.js文件重新编辑该站点。

  <iisnode node_env="%node_env%" nodeProcessCountPerApplication="1" maxConcurrentRequestsPerProcess="1024" maxNamedPipeConnectionRetry="100" namedPipeConnectionRetryDelay="250" maxNamedPipeConnectionPoolSize="512" maxNamedPipePooledConnectionAge="30000" asyncCompletionThreadCount="0" initialRequestBufferSize="4096" maxRequestBufferSize="65536" uncFileChangesPollingInterval="5000" gracefulShutdownTimeout="60000" loggingEnabled="true" logDirectory="iisnode" debuggingEnabled="true" debugHeaderEnabled="false" debuggerPortRange="5058-6058" debuggerPathSegment="debug" maxLogFileSizeInKB="128" maxTotalLogFileSizeInKB="1024" maxLogFiles="20" devErrorsEnabled="true" flushResponse="false" enableXFF="false" promoteServerVars="" configOverrides="iisnode.yml" watchedFiles="web.config;*.js" nodeProcessCommandLine="C:\Program Files (x86)\nodejs\node.exe" /> 
Interesting Posts