如何在 .Net 中为 Windows 服务创建 Web 界面? [关闭]
Posted
技术标签:
【中文标题】如何在 .Net 中为 Windows 服务创建 Web 界面? [关闭]【英文标题】:How to create a web interface for a windows service in .Net? [closed] 【发布时间】:2010-12-03 16:33:08 【问题描述】:我正在寻找一种在 Windows 服务中托管 Web UI 的方法,以便我可以在浏览器中对其进行配置和控制。我想要一个简单轻量级的解决方案,我不想使用 IIS。
我可能可以手动滚动大部分内容,但我想知道是否已经制作了一些东西来简化这个过程。
【问题讨论】:
【参考方案1】:您始终可以使用WCF 在服务中托管端点并以这种方式公开它。
我能想到的唯一其他选择是拥有一些 Web 应用程序可以写入并且服务可以从中读取的文件,或者是由网站写入并从服务中读取的数据库。这些都不如简单地通过 WCF 公开通信端点那样优雅。
编辑 - 添加
具体来说,我正在考虑将其公开为 HTTP 端点,并以 Web 服务的方式直接与浏览器交互。
但是,只要服务托管通信端点,就没有理由不能设置传统的 Asp.Net 应用程序来与服务通信。
【讨论】:
+1 我认为这是最干净的方法,尤其是在托管进程内 Web 服务器之上。我像这样使用 WCF。它允许您通过分离关注点来清晰地构建解决方案。 WCF 服务公开一个 API,但保持 UI 独立。也许我们今天公开为网页,但明天我们也提供桌面工具。【参考方案2】:如果您正在查看 UI 而不是 Web 服务界面,您可以做以下几件事:
1) 它可能超出您的需要,但您可以使用原始 Cassini 代码库在您的服务中托管 ASP.NET: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx
2) 您也可以只打开一个端口,然后将一个简单的 html 页面放在服务中的单独线程上,具体取决于您希望访问该服务的程度。
这两种方法我都做过几次,只要您不关心安全性,任何一种都非常简单 - 例如。该机器只能从受信任的 Intranet 访问。如果不是这种情况,最好在机器上托管 IIS 并编写一个安全的 Web 应用程序。
【讨论】:
【参考方案3】:我一直想用我创建的 Windows 服务做同样的事情。我可能终于找到了一篇有帮助的文章。我还没有尝试过,但我认为它具有我们都需要的基础 - 以及示例源。
本文的重点是如何在您的代码中托管 Web 服务 (ASMX),但我认为它可以同样轻松地托管 ASPX 页面。
http://msdn.microsoft.com/en-us/magazine/cc163879.aspx
-德里克
【讨论】:
感谢您的回复。我已经查看了 System.Web.Hosting(实际上,我查看了 Cassini),发现它对于我的需求来说有点复杂。我真的不需要托管 aspx 页面,我只想能够用代码响应传入的请求。实际上,我已经开始使用 System.Net.HttpListener 做一个项目。当我有第一个版本时,我计划将它作为开源提供。当我这样做时,我会添加这个问题的答案。【参考方案4】:如果您想要嵌入式服务器,但不想要服务或任何外部 HTML/ASPX 文件,这里还有一个选项:
WebConfig - 你的无线路由器拥有它,现在你也可以 http://www.codeproject.com/KB/game/WebConfig.aspx
【讨论】:
【参考方案5】:编辑:请不要使用它。这是一个简单的概念证明,我从来没有去过任何地方。请参阅我对better solutions 的其他答案。
好吧,迟到总比没有好。没有太多时间来处理它。
http://github.com/leddt/SimpleHttpServer
这是非常基本的东西,不适合生产使用。这是我正在试验的一个小项目。但是,我会接受 cmets、建议等...
【讨论】:
【参考方案6】:本文的重点是如何在您的代码中托管 Web 服务 (ASMX),但我认为它可以同样轻松地托管 ASPX 页面。
http://msdn.microsoft.com/en-us/magazine/cc163879.aspx
【讨论】:
【参考方案7】:自从最初发布此问题以来,已经发布了针对该问题的更好解决方案。
如果您的目标是 .Net Core,使用 WebHostBuilder 自行托管 ASP.Net Core 很简单。
另一种解决方案是Nancy,也很容易self-host。
【讨论】:
我也有同样的要求。你能在这里帮忙吗***.com/questions/55628101/…以上是关于如何在 .Net 中为 Windows 服务创建 Web 界面? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Powershell 中为“网络服务”帐户创建 Windows 服务?
如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?
如何在工作组环境中为 MS SQL Server 创建 Windows 服务帐户?
我可以在 Windows 中为 Linux 平台创建应用程序吗?