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

时间:2011-08-24 11:41:45

标签: c# .net ajax webserver embeddedwebserver

我刚刚编写完c#console应用程序,我正在考虑将Web服务器嵌入其中(可能是这个http://webserver.codeplex.com)。虽然我在高级网络编码方面做的不多,所以我不确定我是否可以做我需要做的事。

基本上,我想让用户只需访问我的应用程序所服务的站点,即可实时查看我的应用程序的控制台输出。如果我理解正确,要做这样的事情就需要AJAX,这是一个简单的C#Web服务器无法处理的。

这是正确的还是有一种简单的方法可以解决这个问题?

3 个答案:

答案 0 :(得分:1)

如何重新路由控制台输出

您需要自己编写TextWriterConsole通过Console.SetOut使用它。此作者应通知已连接的Web客户端以及原始Console.Out

如何托管类似COMET的服务器

您可以使用HttpListener和一些基本的异步编程来执行此操作。如果您将HttpListenerContext.Response.OutputStream包裹在StreamWriterAutoFlush设置为true)并将HttpListenerContext.Response.SendChunked设置为true,则客户将收到部分结果 - 这意味着您甚至可以在IFRAME中执行此操作。

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

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

<强>代码吗

我无法抗拒;我写了一篇(测试不佳,大部分不完整)sample

答案 1 :(得分:0)

这是不正确的。

AJAX是一种依赖JavaScript的客户端技术。只要Web服务器可以响应HTTP请求,它就可以服务 AJAX内容(无论这意味着什么: - )。

答案 2 :(得分:0)

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