如何重新启动iisnode?
我们在Windows 2008R2服务器上使用IIS 7.5的iisnode。 node.js应用程序在启动时加载一些configuration数据。 有时configuration数据发生变化,应用程序需要重新启动。
当通过Windows系统pipe理器控制台重新启动IIS站点实例一切工作正常。
当通过appcmd stop
和appcmd 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" />