c# - 每个 session 的线程限制?

标签 c# asp.net .net iis

我有一个 aspx 页面,它通过 Jquery Ajax 请求异步加载 10 个图表。正在向实现 IReadOnlySessionState 的通用处理程序发出请求,因为需要访问 session 变量,但它是一个读取,这样我就不会受到 asp.net 实现的读写 session 锁的影响。

通过调试器,我可以看到调用是异步发生的,但似乎存在一个限制,因为一些调用仅在前几个调用完成后才进入代码。我不确定这是 IIS 的设计还是 web.config 中的属性。

一个用户/ session 一次可以拥有的线程是否有限制?

最佳答案

IIS 和 asp.net 处理线程的方式取决于您使用的 IIS 版本。工作线程的数量有限制,必须保持可用的线程数量也有上限。这意味着一次只能执行一定数量的线程。

参见:http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

If your ASP.NET application is using web services (WFC or ASMX) or System.Net to communicate with a backend over HTTP you may need to increase connectionManagement/maxconnection. For ASP.NET applications, this is limited to 12 * #CPUs by the autoConfig feature.

也来自同一篇文章:http://support.microsoft.com/kb/821268

如果您长时间运行来自 AJAX 的 HTTP 请求,最好的办法是执行异步 http 请求处理程序。然后请求可以在 IO 线程上等待,因为 asp.net 的 IO 线程比工作线程多得多。

参见:http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45

关于c# - 每个 session 的线程限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404766/

相关文章:

java - 错误请求 - 来自 Android 模拟器的 SOAP WCF Web 服务的主机名异常无效

c# - 避免使用单独的线程从 BlockingCollection 获取重复值

.net - 在 Delphi 程序中托管 .NET 运行时

c# - 在与 SQL Server 的 ODBC 连接中打开多个结果集

c# - 如何在 Aspx 页面上显示日期?

asp.net - ASP .NET 中表单的输入元素名称

c# - UploadFromStream 到 Azure blob 时超出最大请求长度异常

c# - .NET TCP 协议(protocol)有多可靠?

c# - 从另一个线程附加到文本框

javascript - 在按钮上关闭响应响应左栏单击 jquery C#