Azure网站:指定的CGI应用程序遇到错误,服务器终止了该过程

时间:2016-02-01 12:40:16

标签: java tomcat azure cgi

我在Microsoft Azure上发布了一个网站,最近我收到以下错误:“指定的CGI应用程序遇到错误,服务器终止了该过程。”

我的应用程序是Java应用程序并使用“最新的Tomcat 7.0”。我尝试了一些修复,但它不起作用(The specified CGI application encountered an error and the server terminated the process)。我的web.config甚至没有这个属性。

从我的日志中我注意到Java应用程序没有记录任何错误,但它会在一段时间后停止运行。当我重新启动服务器时,它正常工作,但一两天后,我开始收到此错误。

之前我遇到过这个问题,但错误只是在一两个月之后出现,现在最近几乎每天都出现。我没有对我的文件或服务器进行任何更改。

知道怎么解决吗?

3 个答案:

答案 0 :(得分:3)

Azure网站有一项名为“自动修复”的功能。这仅适用于标准模式,不适用于免费模式或基本模式。

您可以将服务器配置为定期重新启动。这不会解决根本原因,但可能足以让您的应用保持运行。 查看这个github要点,了解如何在web.config文件中对其进行配置

https://gist.github.com/SyntaxC4/0d7185b30acf477c2033#file-web-autoheal-config

自动修复在azure网站备忘单

中进行了描述

http://microsoftazurewebsitescheatsheet.info/

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <monitoring>
      <triggers>
        <!-- Scenario #1: Recycling based on Request Count -->
        <requests count="1000" timeInterval="00:10:00"/>
        <!-- Scenario #2: Recycling based on slow requests -->
        <slowRequests timeTaken="00:00:45" count="20" timeInterval="00:02:00" />
        <!-- Scenario #3: Logging an event (or recycling) based on HTTP status code(s) -->
        <statusCode>
          <add statusCode="500" subStatusCode="100" win32StatusCode="0" count="10" timeInterval="00:00:30"/>
        </statusCode>
        <!-- Scenario #4: Taking custom actions (or recycling/logging) based on memory limit -->
        <memory privateBytesInKB="800000"/>
      </triggers>
      <!-- Scenario #1 & #2 Action -->
      <actions value="Recycle"/>
      <!-- Scenario #3 Action -->
      <actions value="LogEvent"/>
      <!-- Scenario #4 Action  -->
      <actions value="CustomAction">
        <customAction exe="d:\home\procdump.exe" parameters="-accepteula w3wp d:\home\w3wp_PID_%1%_" />
      </actions>
    </monitoring>
  </system.webServer>
</configuration>

答案 1 :(得分:1)

根据我的经验,我认为您可以尝试查看catalina.YYYY-MM-DD.log和&amp;在{Kudu控制台site.YYYY-MM-DD.log的{​​{1}}路径中D:\home\LogFiles\,以确定原因是什么,例如https://<your webapp name>.scm.azurewebsites.net/DebugConsole或其他。

您是否可以在日志文件中提供错误信息以分析问题?

我还搜索了下面可能导致错误的一些案例。

  1. 超过Azure WebApp Tier限制的内存使用量,如Free Tier 1GB RAM。然后,您可以尝试升级更高级别,如基本或标准层。

  2. 对于例外Out of Memory,您可以尝试在Out of Memory的{​​{1}}中为XmsXmx设置适当的值(httpPlatform部分) ) - 有关httpPlatform配置,请参阅http://azure.microsoft.com/en-us/documentation/articles/web-sites-java-custom-upload/。同时,请调试您的代码是否异常是由不合适的代码逻辑引起的。

  3. 希望它有所帮助。最诚挚的问候。

答案 2 :(得分:1)

我们在Web App和Tomcat中遇到了类似的问题。 有时Tomcat需要大约20-30分钟才能唤醒(在应用程序启动,重新启动或重新部署之后)。

在阅读完该主题后,我们审核了我们的配置,发现&#34; 始终开启&#34; “应用程序设置”中的属性位于&#34; 关闭&#34; state,这意味着如果应用程序空闲,Azure可以卸载它。

坦率地说,如果将此属性设置为&#34; On&#34;我还没准备好说。会解决我们的问题。我们刚刚改变了这个设置,我需要几天(一周?)来说明问题是否消失了。

我可以建议:

  1. 检查您的应用程序是否会在一段时间后醒来(正如我所说,在我们的情况下,它超过20分钟)。
  2. 如果您对上一个问题的回答是肯定的,请尝试使用Always On属性。
  3. 我希望,它能为您提供一些线索

    2017年10月16日更新 &#34;永远在&#34;物业在几个月内对我们有用。 我重新阅读了最初的问题,看起来,作者有同样的问题。