2010-02-23 51 views
7

我想构建一个基于彗星的应用程序,并希望它能够支持多达1000个并发连接。据我所知,Tornado的优势在于不会为每个请求产生一个线程,因此可以轻松处理数千个长的轮询请求。是否有任何开源的基于C#的非阻塞,基于事件的Web服务器像Tornado?

+0

您是否需要该服务才能在台式机上运行? IIS随Windows Server一起提供,并且应该能够轻松处理这种负载。 – 2010-02-24 01:51:52

+0

IIS是否为每个HTTP请求产生一个线程?据我所知,这就是为什么Tornado比Apache更适合长时间轮询系统的原因。我假设IIS做同样的事情。 – 2010-02-24 02:07:11

+3

IIS不跨越每个HTTP请求的线程,天堂没有。它确实使用IO完成端口。 – 2010-05-11 21:31:26

回答

8

我认为Manos de Mono是你在找什么。它还很早,但看起来很有希望。

3

要使用ASP.NET/IIS处理长轮询请求,您需要实现自定义HTTP处理程序并实施IHttpAsyncHandler。这允许您使用ASP.NET工作线程开始处理请求,然后在等待事件触发响应时将线程返回到线程池。

http://msdn.microsoft.com/en-us/library/ms227433.aspx

异步HTTP处理程序可以立即开始一个外部进程(例如,方法调用到远程服务器),而处理机继续处理。处理程序可以继续而无需等待外部过程完成。

ASP.NET MVC还提供了一个AsyncController来简化在此框架中实现异步请求处理。

http://msdn.microsoft.com/en-us/library/ee728598.aspx

0

,你可以尝试用Mongrel2点NET绑定。它是非常快速的语言不可知网络服务器。它通过zeroMQ工作。

相关问题