我们在Windows 2008R2服务器上将iisnode与IIS 7.5一起使用。 node.js应用程序启动时会加载一些配置数据。有时配置数据会更改,因此需要重新启动应用程序。

通过Windows系统管理器控制台重新启动IIS站点实例时,一切正常。

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

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

最佳答案

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

使用以下信息,您可以将IISNode设置为监视您的配置文件,并且只要更改它们,IISNode就会回收该站点。



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" />

10-04 14:03