使用HttpListener为生产口径Web服务器?
-
13-09-2019 - |
题
是不是真实的使用C#.NET类HttpListener作为生产口径Web服务器的基础?
在HTTP Web服务我需要主机不包含的.aspx或静态文件。所有HTTP响应是动态的,在经由该检查宁静的URL格式几个switch语句调用C#代码生成的。
我的想法是,IIS是真的在Windows O / S HTTP-SYS内核模块做所有重型网络处理围绕用户模式包装,所以是HttpListener。
我已经有了一个基本的多线程Web服务器运行的是极好的发展,因为它开始在调试模式中一个实例,现在我想我需要IIS来进行生产的矫枉过正。低内存占用另一个吸引力。
解决方案
您这里有两个严重的选择。不,用HttpListener编码自己的Web服务器不是生产级。
1)使用IIS。它有一吨的功能安全性,性能,也许更重要的是,管理的,你就必须重塑自我。像远程管理,记录,集成Windows安全等
2)使用WCF并创建一个ServiceHost的托管文件。然后,你将不得不实现自己的服务,并找到一个方法来管理他们的寿命。你可以这样做,但同样,如果你在谈论RESTful网络电话,IIS真的是要走的路。
手动滚动自己应该避免。 IIS在过去10年已经发生了很大变化。这绝不是一个大的整体的服务器了。他们已经模块化,刚才的一切,特别是在Windows 2008中,所以你得到一个精简和快速的系统。
其他提示
好,因为它是所述 - 尝试在第一使用IIS
HttpListener是不是坏的 - 这是最快的管理监听服务器现在可以有(比的TcpListener比Socket类快)。它实际上是相同的核心与IIS。但是,IIS有很多更多的事情。
显示承载的使用,它在的Win2008的稳定性和管理方面变差 -IIS是整体,我不能说。但是,你的手工制作的解决方案可能是更糟。也不要忘记 - HTTP.SYS比HttpListener更加个性化。即你不能做HttpListener流,但你可以做到这一点与HTTP.SYS - 问题约HttpListener流
但是,如果你有足够的实力为开发者 - 你可以试着写了自己的HTTP.SYS的包装,这是在Windows编写自己的Web服务器的最佳方法
垃圾,滚你自己的。该架构允许它。要知道,虽然有在Class一些奇怪的行为。关闭它几次在NT服务使得薄片状作为粉扑糕点袋。
如果您在控制台上运行它,没有任何问题,运行它异步和所有应该很好,但是,启动和停止混账东西。这就是我目前与作为正在从气密微软公司生产的没有错误挣扎一个不同的问题密封类。
我感觉蟒来与CherryPy的一点点划线
如果你写它,那么你就必须去维护它。 Microsoft已经编写一个Web服务器 - 你应该使用它