如何在.Net中为Windows服务创建Web界面?

时间:2009-10-04 04:37:50

标签: .net windows-services web-frontend

我正在寻找一种在Windows服务中托管Web UI的方法,以便我可以在浏览器中配置和控制它。我想要一个简单轻量级的解决方案,我不想使用IIS。

我可能会手动滚动大部分内容,但我想知道是否已经做了一些工作来缓解这个过程。

7 个答案:

答案 0 :(得分:3)

如果您想要嵌入式服务器,而不是服务或任何外部HTML / ASPX文件,这是另一种选择:

WebConfig - 您的无线路由器拥有它,现在您也可以 http://www.codeproject.com/KB/game/WebConfig.aspx

答案 1 :(得分:2)

我一直想用我创建的Windows服务做同样的事情。我可能终于找到了一篇有用的文章。我还没有尝试过这个,但我认为它有我们所需要的基础 - 以及样本源。

本文的重点是如何在代码中托管Web服务(ASMX),但我认为它可以轻松地托管ASPX页面。

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

-Derek

答案 2 :(得分:1)

您始终可以使用WCF在服务中托管端点并以此方式公开它。

我能想到的唯一其他选项可能涉及一些Web应用程序可以写入的文件,服务可以从中读取,或者是由网站写入并从服务中读取的数据库。这些都不像通过WCF简单地公开通信端点那样优雅。

编辑 - 已添加<​​/ em>

具体来说,我正在考虑将其作为HTTP端点公开,并以与Web服务相同的方式直接与浏览器连接。

但是,只要服务托管通信端点,就没有理由设置传统的Asp.Net应用程序与服务进行通信。

答案 3 :(得分:1)

如果您正在查看UI而不是Web服务界面,那么您可以执行以下操作:

1)它可能超出您的需要,但您可以使用原始的Cassini代码库在您的服务中托管ASP.NET: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx

2)您也可以打开一个端口,并在您服务的不同线程上放置一个简单的HTML页面,具体取决于您希望访问该服务的程度。

我已经完成了这两次,只要你不关心安全性,任何一个都非常简单 - 例如只能从受信任的Intranet访问该计算机。如果不是这样的话,最好在机器上托管IIS并编写安全的Web应用程序。

答案 4 :(得分:1)

修改:请不要使用此功能。这是一个简单的概念证明,我从来没有去过它。请参阅better solutions的其他答案。


嗯,迟到总比没有好。没有太多时间研究它。

http://github.com/leddt/SimpleHttpServer

这是非常基本的东西,不适合生产使用。这是我正在尝试的一个小项目。不过我会接受评论,建议等......

答案 5 :(得分:1)

由于这个问题最初发布,因此已经发布了更好的问题解决方案。

如果您的目标是.Net Core,使用WebHostBuilder自行托管ASP.Net Core是微不足道的。

另一种解决方案是Nancy,这也很容易self-host

答案 6 :(得分:0)

本文的重点是如何在代码中托管Web服务(ASMX),但我认为它可以轻松地托管ASPX页面。

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx