0

这是我现在第二次看到这种行为,我不知道如何解决这个问题。

我有一个基于 .Net Core 的网络系统。目前是 2.0(我知道,我需要更新这个)。

  • 单一应用服务
  • 两个基于 .Net Core 的 Web 应用程序:
    • 主要是 Web API REST 端点
    • 一个也有一些非常简单的 MVC 前端东西(一个后端管理门户,它使用 JS/JQuery 来查询一些 REST 端点以提供一些统计信息和诊断信息)
    • 一个 Web 应用程序有两个队列触发的 Web 作业
    • 两者都通过 EF Core 访问同一个 Azure SQL 数据库。
    • 两者都使用 NLog 进行日志记录
  • 第三个 Web 应用程序仅用于处理主 UI 的 Angular 前端,并且从不给出任何实际问题(调用 Web API 端点之一并显示结果数据.. 没有太多逻辑)

这些应用程序形成了一个多租户报告系统。一个应用程序用于获取数据以进行报告。另一个是远程客户端系统用来上传和导入数据的端点,然后在前端可见。

一切都构建在构建服务器(团队城市)上,构建工件也通过同一团队城市服务器上的单独构建配置部署到 azure。

这通常已经运行了一段时间(一年多)。但是大约几个月前,其中一个 Web 应用程序(报告应用程序)开始不响应请求。并非所有请求(例如,仅生成 JWT 令牌的“登录”之类的基本内容都可以),但任何试图获取大量数据的内容都不会响应。

重新启动网络应用程序没有帮助。打开额外的日志并没有帮助,但似乎可以确定它正在到达特定的代码行并且只是......停止。这非常奇怪,而且不是一条特别费力的线路。

最后,我添加了更多日志记录,当然必须重新部署以进行这些更改……然后问题就完全消失了。除了一些日志记录语句之外,我真的没有添加任何额外的东西(我对此非常细致,并且通过 Team City/VCS Labeling (Git) 提供了构建/部署历史记录)。

现在,今天我在另一个.Net Core Web 应用程序上遇到了类似的症状。它似乎只是到达代码中的特定位置然后停止。(据我从日志中可以看出)。在尝试重新启动应用程序(以及覆盖这两个应用程序的整个应用程序服务)并且它没有任何效果之后,我只是再次重新部署了该站点,没有任何更改,它开始工作。

什么可能导致这种行为?似乎有时 .Net Core Web 应用程序只是进入某种奇怪的状态并停止正确响应。他们不会抛出异常,只是... stop。并且重新启动 Web 应用程序似乎没有帮助,这尤其奇怪。就好像它在重新启动之间保持的状态比您预期的要多。

我将尝试尽快优先升级到 .Net Core 2.2 或类似版本,但想知道是否有人看到了这一点,当然,如果更新后再次发生这种情况,我会不高兴。

4

1 回答 1

0

突然无法工作的原因只能通过查看后端日志来跟踪,如果需要可能收集内存转储肯定可以增加很多价值。

但是是的,有时 Asp.Net 核心应用程序在平台基础架构更改后的一段时间内不可用。该问题与站点预加载功能和 IIS 管道中的 Asp.Net 核心模块之间的交互有关。

对于 Asp.Net Core ,这被跟踪为https://github.com/aspnet/AspNetCoreModulowine/issues/260

只是看看它是否有帮助,将以下 Applicationhost.xdt 放在 D:\Home\Site 文件夹中。

<?xml version="1.0"?>
 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.applicationHost>
    <sites>
    <site>
      <application xdt:Locator="Match(applicationPool)" xdt:Transform="SetAttributes(preloadEnabled)"
            applicationPool="wwwsilkroadcom" preloadEnabled="false"/>
    </site>
    </sites>
  </system.applicationHost>
</configuration>

于 2019-05-15T09:15:31.210 回答