如何在 .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 平台创建应用程序吗?

如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证

如何在php中为windows创建localhost域管理?