用于显示控制台输出的c# Web服务器

本文关键字:Web 服务器 输出 显示 控制台 用于 | 更新日期: 2023-09-27 18:06:35

我刚刚写完我的c#控制台应用程序,我正在考虑嵌入一个web服务器到它(可能是这个http://webserver.codeplex.com)。我不做太多的方式在先进的网络编码,虽然,所以我不确定如果我能做我需要什么。

基本上,我希望允许用户通过访问我的应用程序所服务的站点来实时查看我的应用程序的控制台输出。如果我理解正确的话,做这样的事情需要AJAX,这是一个简单的c# Web服务器无法处理的。

这是正确的还是有一个简单的方法来做到这一点,我错过了?

用于显示控制台输出的c# Web服务器

如何重新路由控制台输出

您需要编写自己的TextWriter,并通过Console.SetOut使Console使用它。这个作者应该通知连接的web客户端,以及原始的Console.Out

如何托管一个类似彗星的服务器

你可以使用HttpListener和一些基本的异步编程来做到这一点。如果您将HttpListenerContext.Response.OutputStream包装在StreamWriter中(AutoFlush设置为true)并将HttpListenerContext.Response.SendChunked设置为true客户端将接收部分结果-这意味着您甚至可以在IFRAME中这样做。

如果启用了UAC,您需要为自己添加URL的权限:

netsh http add urlacl url=http://+:9090/ user=domain'username

代码?

我无法抗拒;我写了一个(测试得很差,而且大部分都不完整)示例。

这是不对的。

AJAX是一种基于JavaScript的客户端技术。只要web服务器可以响应HTTP请求,它就可以提供AJAX内容(无论这可能意味着:-)。

我会使用这个UtilDev Cassini作为我的嵌入式web服务器的选择,它是基于嵌入式Visual Studio开发服务器的代码,可以运行几乎任何在IIS中运行的东西。AJAX是一种浏览器技术,而不是服务器技术,服务器只是像对待其他请求一样看待http请求。我的最后一点观点是,将web服务器嵌入到控制台应用程序中似乎有点奇怪。更常见的做法是使用windows服务。你是否考虑过将主机应用转换为windows服务?