• IIS部署.netCore 程序踩过的坑


    对于IIS部署NetCore 程序的教程,网上有很多,在这里就不赘述了。有需要的同学可以自行百度。。

    今天要说的是部署之后的故事。

    我们的开发环境集成了 Jenkins,部署在我们公司的一台实体服务器上,数据库,redis,工作流服务,等一系列服务都放在一个服务器上(没办法,小项目)。

    一直以来,在我们自己的服务器上,整个测试环境都还是挺稳定的,没出现服务卡死,无法重启等现象。

    直到有那么一天,程序需要部署在客户的测试机上了。经过一天的折腾,终于是把程序部署好了,网站也都顺利的运行起来了。

    然而噩梦才刚刚开始:

    第一天程序运行还算平稳,除了个别配置问题造成的错误以外,并未发现其他问题。

    故事(事故)是从第二天的下午开始的,一条来自客户的微信,打破了我沉浸在Codeing For Bug 中的思绪。客户反应网站无法登录,报500错误。具体什么情况不太清楚。

    截图如下:

    懵逼的我,本以为这是已经小事,重启一下服务吧,但是!重启服务居然还是不行,经过初步推断是项目中有异步调用强制同步的地方,像下面这种,或者.result() 这种,

    于是,一手改代码,一手重启客户服务器。

     

     

    改完代码后,重新发包,部署。就当我以为这一切都会过去的时候,第二天,问题依然出现!

    于是继续,百度,Bing,360,Github。。。。(对,不翻墙)

    经过一番搜索,发现了一个跟我的描述很像的问题  https://github.com/dotnet/aspnetcore/issues/19555,于是乎。继续修改,就像他描述的一样:

    remove BuildServiceProvider form startup 

     这是一个对文件监控,修改Redis 的监听。最后改成这样:

     另外还优化了整个项目中的日志引用:统一通过 ILogger 进行日志的操作。

    于是乎,也不知能不能起到效果,就又部署了一版到现场。

    结果你们也许想到了,是的,第二天问题又出现了。

    一筹莫展啊。查看系统日志,发现服务依然是被shut Down 

     并且很怪异的是,w3wp.exe 这个进程无法杀死。并且无法重启。

    继续检查代码。发现有一个异常未经处理,于是乎怀疑是他的问题,同时申请了客户的正式机,同步部署。

    这期间,怀疑过客户测试机配置的问题,怀疑过虚拟机的问题。于是,把程序同步部署到了客户正式机上。

    终于,第二天,测试机照常服务卡死,但正式机并没有。对比了两个 站点发现:

    测试机的站点部署在Default Web Site 上,并且,该站点前面还有一个问好,

    百度说,这是一个多协议:IIS信息服务管理器的网站有个小问号显示多个协议

    最后,在不更换服务器的情况下,重新安装了 dotnet-hosting-3.1.0-win,重新安装了 IIS,并且删除了 默认站点,新建站点进行部署。

    可喜的是,程序终于可以正常运行了!

    至此,仅以此博客做一下记录!

     

  • 相关阅读:
    【STM32F429】第11章 ThreadX中断优先级配置,含BasePri配置方案
    【STM32H7】第10章 ThreadX任务栈大小确定及其溢出检测
    【STM32F429】第10章 ThreadX任务栈大小确定及其溢出检测
    《安富莱嵌入式周报》第216期:2021.06.07--2021.06.13
    嵌入式新闻早班车-第3期
    嵌入式新闻早班车-第2期
    Keil Studio已经确定为MDK下一代开发工具,更多功能将在今年年底上线
    嵌入式新闻早班车-第1期
    【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)
    【STM32F429的DSP教程】第32章 STM32F429的实数FFT的逆变换(支持单精度和双精度)
  • 原文地址:https://www.cnblogs.com/xuzhencheng/p/12784802.html
Copyright © 2020-2023  润新知