asp.net中大量数据并发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net中大量数据并发相关的知识,希望对你有一定的参考价值。

ASP。NET中当有大量数据并发访问时,如何防止系统崩溃。(不从硬件,数据库方面考虑)

不应该这么问,.NET是一个框架,用的是IIS发布,是IIS的撑不住压力.
在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml
相关说明设置如下:
AspSessionMax
作用:属性指定了 IIS 允许的最大并发会话数。当达到该限定时,如果客户端试图与 IIS 建立新连接,则客户端将接收到不正确信息(HTTP 500"服务器太忙")。
AspRequestQueueMax
作用:该属性指定了允许进入队列的并发 ASP 请求的最大数目。在队列占满时,任何试图请求 ASP 文件的客户端阅读器都将收到 HTTP 500"服务器太忙"的不正确。
留心:在 IIsWebService 级别上配置该属性可运用于所有级别上的所有进程内的和共用的进程外运用 程序项。进程内的和共用的进程外运用 程序忽略 IIsWebServer 级别及更低级别上的配置数据库配置。但是,如果该项是进程外的隔离运用 程序,则运用 IIsWebServer 级别或更低级别的配置。
改完后运行iis admin service.

如果好给我加分哦
参考技术A 由于IIS有连接数限制,所以当并发访问超过限制时,服务器会给出错误:

service unavailable

这种情况时,

1,你调高IIS应用程序池的连接数(IIS 6+,如果是IIS 5+就要改machine.config)

2,你做负载均衡,(load balance)

Azure中使用大量CPU的ASP.NET WebApp

我们在Azure中运行了很长时间的ASP.NET WebApp,没有公开任何实际的终结点-它具有一个功能目的,主要是读取和操作数据库数据,实际上是一个批处理的计划任务,由计时器每30秒触发一次。该应用在大多数情况下都能正常运行,但偶尔会遇到这样的问题:该应用的CPU负载立即(而不是逐渐)接近AppServicePlan的最大负载,并停止执行更多的计时器触发器,因此我们无法在执行代码来解决它(没有死锁的迹象等,并且所有代码路径都具有try / catch,因此不应有未处理的异常)。我们经常会看到与数据库建立连接的错误,但不清楚是由原因还是症状引起的。

注意,这是AppService计划中的唯一资源。 Azure SQL数据库位于同一区域,虽然它们被其他应用程序使用的程度很低,但是它们也不会出现问题应用程序看到的任何问题。

感觉这与基础架构有关,但是我们找不到任何能够解释正在发生的事情,因此,如果有人对我们应该去的地方有任何建议,我们将不胜感激。我们已经启用了基本的Application Insights(不是SDK),但是除了在无法充分利用Insight方面了解有限的知识外,除了在应用响应丢失之前看到CPU负载激增之外,其他有用的信息也很少。

[我们在Azure中运行了很长时间的ASP.NET WebApp,没有公开任何实际的终结点-它具有单一功能,主要用于读取和操作数据库数据,有效地是批处理,...

答案

根据您的描述,我认为有两点可以解决您的问题。首先,您可以通过代码跟踪程序的运行状态,并在批处理计划任务的开始和结束处放置一个日志,以记录每次运行的状态。如果可能,记录请求和响应信息以及开始和结束信息。这样可以完全记录任务的时间和运行状态。

第二,您可以在程序开始数据库操作之前记录日志,以及数据库连接是否成功。最好的情况是能够记录哪些业务将在操作时触发CPU负载,并跟踪特定的操作条件,以便专门分析导致数据库连接失败的原因。

以上是关于asp.net中大量数据并发的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据

Asp.Net 将大量数据从视图发送到控制器

在asp.net中向客户端导出大量数据

在 asp.net mvc 应用程序中检索大量行(超过 1000 万)

在 ASP.NET 中发送大量电子邮件的最佳方式是啥?

Azure中使用大量CPU的ASP.NET WebApp