IIS-网站莫名自动重启问题

    技术2022-07-12  64

    先说下碰到的问题吧:

        在腾讯云上发布了一个.net core网站,网站有个功能是对外开放一个端口,与客户端建立TCP长连接,初始化的方法写在了StartUp类里,在IIS上点击启动,对外开放了端口,客户端长链接建立没问题,但是每隔十多分钟,客户端就会抛出“目标地址拒绝连接”的异常,也就是说服务器关闭了该端口,查看服务器打点日志,发现每隔一会StartUp就会执行一次,即网站会莫名自动重启,具体的windows日志为:“Application 'MACHINE/WEBROOT/APPHOST/***' has shutdown.”,

    “Application 'C:\Users\Administrator\Desktop\***' started successfully.”

    确认了IIS的网站会自动重启,经过排查发现是IIS的应用程序池回收的机制问题,IIS的默认设置里面,如果一个站点所处的应用程序池超过一段时间没有被访问或者请求,IIS就会自动回收这个程序池,并且把进程杀掉。那进程里面的线程肯定也活不下来了。PS:看样子IIS判断应用程序是否被访问和请求只是要求http协议,使用TCP开放个端口访问不被当做被访问。

    最后关闭了IIS的应用程序池自动回收解决了该问题

    操作如下:

    在IIS中找到这个站点所用的程序池,点击“高级设置...”

    在打开的列表中更改以下设置:

    回收——固定时间间隔(分钟) 改为 0

            ——虚拟/专用内存限制(KB) 改为 0

    进程模型——闲置超时(分钟) 改为 0(我的应该是因为这个选项没调成0)

    附上解决该问题参考的文章:https://www.cnblogs.com/hushaojun/p/5016332.html

    Processed: 0.010, SQL: 9