大数据量同时访问一个ashx文件的效率问题

petrie 2011-08-28 09:14:58
网站有一个ashx文件,用来更新数据库的内容。当浏览器向IIS请求ashx是,IIS的工作过程是怎样的?

当大量请求一起发向IIS的同一个ashx文件时,IIS会有自动多线程的处理吗?

如果没有的话是不是应该在ashx文件中自己添加呢?
...全文
317 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-08-28
  • 打赏
  • 举报
回复
ycproc 2011-08-28
  • 打赏
  • 举报
回复


你知道ashx的 通讯机制吗?
md5e 2011-08-28
  • 打赏
  • 举报
回复
IIS本身就是基于并发模式进行的,所以不用考虑多线程的问题,只要注意运行完代码后及时释放资源就可以了
  • 打赏
  • 举报
回复
关于你的“如果没有的话是不是应该在ashx文件中自己添加呢?”这个问题,这个有点难以回答。在多年以前,asp.net2.0时代貌似asp.net系统线程池是200个线程,所以更多的请求就会排队了。那么假设你的很多处理都耗时过多,你的ashx就完全有可能需要异步处理,以便让更多的请求不排队而直接开始执行。不过这跟asp.net线程池的大小参数有关系。过了这么多年,硬件和软件变化这么大,我想asp.net4.0还不把这个默认数值提高10倍么?!这我没有求证,很难说。

由于各方面都有很多异步处理的设计,所以既然默认地ashx不是异步的,那么就说明开发商测试过、认为对于一般情况而言线程池的大小足够了,认为在ashx中再异步可能反而慢了。
  • 打赏
  • 举报
回复
另外线程数跟连接数是两个概念。可能在一段很短的时间之内使用线程而单独执行了100000此任务,但是连接数只有2000个而已。

另外asp.net毫无疑问地是由自己的线程池的,可以复用线程。

这些都给试图用简单数字来揣摩系统性能带来了不确定性。
  • 打赏
  • 举报
回复
且不管IIS如何调用asp.net(是独立进程还是线程),单就asp.net本身来说,从asp.net2.0开始,就是采取线程的方式来调用HttpHandler的。也就是说asp.net响应IIS的调用只是一瞬间就完成了,不等你的ashx开始执行,IIS调用asp.net的那个工作就完成了可以返回去交差去了。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧