首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重启iisnode?

如何重启iisnode?
EN

Stack Overflow用户
提问于 2016-01-05 22:21:27
回答 2查看 4.8K关注 0票数 4

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

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2016-01-22 01:08:38

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

使用下面的信息,您可以设置IISNode来监视您的配置文件,并且当它们发生更改时,IISNode将回收该站点。

Comment from IISNode Sample Config

watchedFiles -以分号分隔的文件列表,这些文件将被监视是否有更改;对文件的更改会导致应用程序回收;

每个条目由一个可选的目录名加上所需的文件名组成,这些文件名相对于主应用程序入口点所在的目录;

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

来自Web.config的示例iisnode元素,每当Web.config或应用程序顶层文件夹中的任何.js文件发生更改时,都会重新启动站点。

代码语言:javascript
复制
    <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" />
票数 8
EN

Stack Overflow用户

发布于 2020-10-17 00:18:37

appcmd可以为您做到这一点,但您需要回收应用程序池,而不是站点。我用来在bat文件中成功完成此操作的命令如下:

代码语言:javascript
复制
%windir%\system32\inetsrv\appcmd recycle apppool /apppool.name:"Your Application Pool Name"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34613891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档