Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MONO服务器2天后冻结_C#_Asp.net_Mono - Fatal编程技术网

C# MONO服务器2天后冻结

C# MONO服务器2天后冻结,c#,asp.net,mono,C#,Asp.net,Mono,我在让MONO在Linux上工作时遇到了一些问题,我感到绝望——我试图解决的所有问题都失败了。由于mod_mono在Ubuntu上占用100%的CPU,所以我重新安装了一个干净的Debian服务器,问题依然存在。我现在将apache2服务器切换到工作模式,并手动运行MONO实例,以便更好地了解情况 性能更好,在执行“ServiceApache2重新加载”或几天后,我不再随机遇到100%的CPU问题 我有5个网站。3台现在运行非常稳定。2-3天后,2个更重要的冰点冻结。然后我必须终止MONO进程并

我在让MONO在Linux上工作时遇到了一些问题,我感到绝望——我试图解决的所有问题都失败了。由于mod_mono在Ubuntu上占用100%的CPU,所以我重新安装了一个干净的Debian服务器,问题依然存在。我现在将apache2服务器切换到工作模式,并手动运行MONO实例,以便更好地了解情况

性能更好,在执行“ServiceApache2重新加载”或几天后,我不再随机遇到100%的CPU问题

我有5个网站。3台现在运行非常稳定。2-3天后,2个更重要的冰点冻结。然后我必须终止MONO进程并重新启动它

日志中唯一能看到的就是这个

Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
WARNING: WebConfigurationManager's LRUcache evictions count reached its max size
Cache Size: 100 (overridable via MONO_ASPNET_WEBCONFIG_CACHESIZE)
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
Terminating connection.
Failed to receive record.
我还能做些什么来解决这个问题?这是一个非常基本的网站,主要是一些简单表单的基本HTML页面。要么这两个网站由于配置不同仍然存在问题,要么是因为它们获得了更多的流量

这是Web.config

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="MailServer" value="smtp.myserver.com"/>
    <add key="MailFrom" value="aaa@bbb.com"/>
    <add key="MailShareFrom" value="aaa@bbb.com"/>
    <add key="MailFromName" value="Etienne"/>
    <add key="ClientPicturesFolder" value="~/files/client-pictures/"/>
    <add key="ClientRecordingsFolder" value="~/files/client-recordings/"/>
    <add key="AdminPassword" value="aaa"/>
    <add key="OntraportAppId" value="xxx"/>
    <add key="OntraportApiKey" value="yyy"/>
  </appSettings>
  <system.web>
    <customErrors defaultRedirect="~/error.html" mode="RemoteOnly"/>
    <compilation debug="false" targetFramework="4.7.1"/>
    <httpRuntime maxRequestLength="153600" executionTimeout="1200"/>
    <!--150MB-->
    <pages controlRenderingCompatibilityVersion="4.0"/>
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="157286400"/>
        <!--150MB-->
      </requestFiltering>
    </security>
    <rewrite>
      <rules>
        <rule name="RemoveDefault" stopProcessing="true">
          <match url="(.*)/default$"/>
          <action type="Redirect" url="{R:1}/"/>
        </rule>
        <rule name="RemoveASPX" stopProcessing="true">
          <match url="(.*)\.aspx"/>
          <action type="Redirect" url="{R:1}"/>
        </rule>
        <rule name="AddASPX">
          <match url=".*" negate="false"/>
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
            <add input="{URL}" pattern="(.*)\.(.*)" negate="true"/>
          </conditions>
          <action type="Rewrite" url="{R:0}.aspx"/>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

注意:重定向规则在Linux上不起作用,而是用.htaccess编写的,但是其他稳定的网站在Web.config中也有同样的功能,可以正常工作

我尝试了很多东西,但没有任何东西能让MONO在Linux上稳定工作。我还能试什么?请注意,如果我将frameworkversion设置为4.0而不是4.7.1,那么所有网站都会在几天后冻结


目前正在运行MONO v5.10.0.140,并且已经尝试了许多不同的版本。

我遇到了类似的问题。虽然我的应用程序更多地使用了表单、数据库等

这些问题通常会在我有大约140个并发连接时发生,并且会非常不频繁地冻结,并持续约30秒

在过去的几周里,我对他们进行了大量的故障排除,我可以将其归结为两件事

  • 您的应用程序可能无法扩展,因为ASP.NET已配置为按顺序运行。要禁用它,我建议在
    system.web
    下面添加
    。 这使得请求的执行是并行的。尽管您可能想知道您的应用程序是否能够做到这一点,因为您可能会使用它创建数据竞争等,尤其是在缓存很多的情况下
  • 检查您的MySQL查询。缓慢的查询或其他错误可能会导致冻结。如果你过度加载它,可能会冻结你的整个服务器。此外,死锁也是一个问题。 在我解决了这些问题后,我设法为自己完全消除了冻结,尽管这些错误仍然存在于日志中。 我仍在研究MySQL对主线程性能的影响
  • 干杯

    编辑: 所以过了一段时间,我开始有完全相同的问题。根据负载情况,服务器在1-2天后冻结。(504最终只是显示502)

    所以我一直在玩弄这些设置。 我最终尝试使用tcp套接字以外的其他套接字。因为事实证明,如果存在套接字异常,就会抛出这些错误消息。现在我正在使用unix套接字,到目前为止它运行得很顺利。
    几天后,当我有一些关于这篇文章结果的数据时,我将再次编辑这篇文章。

    其他人报告说这是TCP套接字上的错误,切换到Unix套接字修复了它。