.NET中的轻量级HTTP服务器库

7
我正在寻找一个小而快速的库,它可以在.NET中实现HTTP服务器。我的一般要求如下:
- 支持多个同时连接 - 只需要支持静态内容(无需服务器端处理) - 仅支持HTTP,不需要HTTPS - 最好能够从内存源提供页面。我想将其集成到另一个应用程序中,以便通过浏览器使更改后的数据可用,但我不想先将其写入磁盘上的文件。例如,只需传递一个C#字符串作为当前页面内容即可。 - 最好是开源的,这样我就可以根据需要进行修改 - 绝对需要免费...这是一个没有预算的个人项目,只有我的时间。我还希望能够自由地发布最终使用该库的产品(即使这意味着遵守该库的特定OSS许可证)。
编辑:为了进一步澄清,我需要的可能非常简单。我需要能够直接从内存中提供两个文档,并且就是这样。是的,我可以编写自己的代码,但我想确保我没有做已经存在的事情。
4个回答

7

使用 Cassini

免费、开源。

从内存中提供服务只需要进行简单的修改。


7
好的,你需要多复杂的HTTP服务器?.NET 2.0有一个HttpListener Class,您可以使用它来创建自己的基本库。由于这是个人项目,您愿意投入时间,这也将成为一个很好的学习经验,因为您将学习如何使用该类进行工作。此外,根据MSDN文档,它还具有异步模式,为每个请求提供独立的线程。

使用该类创建基本的HTTP服务器并使其运行起来也不太困难,您应该只需几百行代码就能完成。


2
HttpListener类有一个缺点 - 即使端口号不在受保护的范围内,它也需要管理员特权。 - Андрей Москвичёв
不,它取决于你侦听哪个主机。如果是回环,则不需要管理员权限。指定其他接口(包括*)将需要管理员权限。 - Javid

5

请查看Kayak

注意:尽管值得这样做,但似乎不再维护kayak了。


0

LightHTTP 是我创建的一个开源库,可以完全满足你的需求。

  • 它可以用于测试和模拟,或其他需要轻量级 HTTP 服务器的场景。
  • 它可以异步工作。
  • 支持同时连接。
  • 它可以按照你的需要提供服务,因为它是基于 HttpListener 构建的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接