【问题标题】:ASP.net vs Basic web front-end for C# Console AppASP.net 与 C# 控制台应用程序的基本 Web 前端
【发布时间】:2011-08-24 21:03:37
【问题描述】:

我有兴趣为我的 C# 控制台应用程序制作一个 Web 前端(它作为服务在专用机器上运行,因此用户永远看不到控制台),以便控制各种功能。我对 ASP.net 的经验很少,所以我需要找出最好的方法。

现在我已经将这个漂亮的小型 Web 服务器嵌入其中 (http://webserver.codeplex.com),但我想用 ASP.net 做一个前端可以更好地控制应用程序。由于大多数搜索与 ASP.net 或控制台应用程序有关,但我没有将它们一起使用,因此我对 Google 结果的运气非常差。我基本上不仅需要从我的应用程序中提取信息并显示它,还需要允许用户输入(主要是文本框和按钮)。

我遇到的另一个问题是嵌入 ASP.net Web 服务器似乎没有任何好的解决方案。我找到了UltiDev CassiniaspNETServe,但似乎都不能嵌入。两者看起来都需要运行额外的软件,这很困难,因为我只想分发一个 .exe 文件。难道不能完全嵌入ASP.net服务器吗?

【问题讨论】:

  • 这是一项“服务”,意味着它不断地接受请求吗?
  • 您不能嵌入网络服务器;这个概念有点没有意义。实际上,您是在问是否可以分发带有嵌入式 Web 应用程序的 EXE?
  • @Dustin - 是的,我的应用程序管理着另一个 24/7 全天候运行的应用程序,因此它始终处于开启状态
  • @Tejs - 我不确定你说的不能嵌入网络服务器是什么意思,因为这正是 webserver.codeplex.com 的含义。但是,是的,部分问题是 ASP.net Web 服务器可以嵌入到 EXE 中吗?
  • 在您的情况下,我会考虑对实际的 Windows 服务进行一般性重构。这样您就可以让您的代码随心所欲地运行,同时还提供一个 UI 来显示您何时需要更改设置。

标签: c# asp.net webserver embeddedwebserver web-frontend


【解决方案1】:

您可能想查看IIS Hosted Web Core (HWC),它允许您将 IIS 的核心嵌入到您的应用程序中。我相信它可以提供 ASPX 文件。本着充分披露的精神,我没有使用过 HWC,所以我不能说它是否会做你想做的事。但自从 Azure 在早期版本中使用(使用过?)HWC 作为其 Web 角色以来,我一直对它感兴趣。

但是根据我的阅读,我认为它可以做你想做的事。缺点是我认为它需要您进行一些本机(C++)编程。不确定这是否有帮助,但我认为这将非常接近您正在寻找的内容。

这是一个blog article,描述了如何在控制台应用程序中嵌入 HWC。

希望这会有所帮助!

【讨论】:

  • 这非常有帮助,谢谢。不过,我的主要问题是,我仍然无法找到答案,从 Web 界面与控制台应用程序交互有多困难?无论我使用基本的嵌入式 Web 服务器(只是 html)还是 ASPX,我都无法弄清楚我应该如何使用它来与我的控制台应用程序交互。在大多数情况下,数据只会从我的应用程序发送到网页,但在某些情况下,我希望它们能够......让我们说通过单击按钮来停止应用程序。
  • 我不明白为什么您不能从 Web 应用程序与控制台应用程序交互。因此,假设 Web 应用程序有一个显示“停止”的按钮。您单击它,它会向您的控制台应用程序 (StopServer) 中的方法发送一个 POST。在 StopServer 中,您只需调用 Application.Exit()。将信息返回给您的客户可能很困难,但我不明白您为什么不能这样做。
  • 如果您想要这样做,而不仅仅是提供 ASPX 页面,请查看像 Nancy (github.com/thecodejunkie/Nancy) 这样的轻量级服务器。描述您的方法的简单语言,您可以轻松地将其托管在控制台应用程序中,而无需使用 HWC。
  • 大卫,这看起来非常棒。这在某种程度上是我不知道存在的解决方案,但看起来非常适合我的需求。不过,我在为这个框架找到任何类型的文档或教程时遇到了麻烦。你知道是否存在我遗漏的任何东西或南希的替代品吗?
  • 无视,完全错过了维基(在我晚年变得脆弱)。非常感谢!
猜你喜欢
  • 2017-03-12
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多