为什么我的ASP.NET站点是单线程的?我有一个在IIS中运行的ASP.NET站点,我注意到如果一个页面很慢,它似乎运行得很慢,所以我设置了一个测试来查看它是否像一个单独的线程一样运行(即,如果一个页面请求正在运行,所有其他页面请求都必须等待)。我创建了一个非常简单的页面(没有母版页,只有默认的aspx代码,除了我添加了一个Literal来转储调试代码),代码读取当前时间,休眠10秒,然后退出,如下所示:protectedvoidPage_Load(objectsender,EventArgse){DateTimenow=DateTime.Now;系统.Threading.Thread.Sleep(10000);Literal1.Text=now.ToShortDateString()+""+now.ToShortTimeString()+""+now.Second+":"+now.Millisecond;然后我同时在两个不同的选项卡中打开页面。每个选项卡上的时间戳几乎相隔10秒,这在我看来意味着第二个页面请求正在阻塞并等待第一个页面请求完成才能运行。我尝试注释掉web.config中的所有http模块并禁用Global.asax中的所有代码,但我仍然看到这个问题。这听起来像是一个会话状态问题。每个会话对会话状态的访问都是独占的,这意味着如果两个不同的用户发出并发请求,则同时授予对每个单独会话的访问权限。但是,如果对同一会话发出两个并发请求(通过使用相同的SessionID值),则第一个请求将获得对会话信息的独占访问权。第二个请求仅在第一个请求完成后执行。[…]来源:ASP.Net会话状态概述尝试在web.config中禁用会话状态(或将其标记为只读)以确认这确实是问题所在,或者使用两种不同的浏览器(以获得不同的会话)。以上是C#学习教程:为什么我的ASP.NET网站使用单线程?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
