【问题标题】:Is it possible to host an ASP.NET MVC2 website from a windows service?是否可以从 Windows 服务托管 ASP.NET MVC2 网站?
【发布时间】:2010-08-21 00:33:44
【问题描述】:

我有一个作为 Windows 服务运行的 .NET 4 应用程序。它运行定期任务并提供 WCF 宁静的 Web 服务。它已经托管了一个允许用户配置服务的 Silverlight 网页(通过 WCF)。

现在我需要提供有关 HTML/java 脚本页面的信息(例如,对于不支持 Silverlight 的浏览器和平台)。我可以通过 WCF 提供简单的 HTML 和 javascript 页面,但这很快就会变得很费力。我想使用 MVC2。

是否可以从 Windows 服务中提供 MVC2 网页?或者至少使用 MVC 提供的一些功能,比如路由和视图引擎?

或者它是否比它的价值更麻烦,我应该沿着托管在 IIS 上的单独应用程序的路径前进?

【问题讨论】:

  • 无法权威地回答,但在我看来,托管 Web 应用程序将是可行的方法。

标签: asp.net-mvc wcf windows-services .net-4.0


【解决方案1】:

您可以在任何类型的应用程序中使用host the ASP.NET runtime,包括使用CreateApplicationHost 方法的Windows 服务。虽然请注意,这样做会失去真实 Web 服务器(如 IIS)提供的稳健性、安全性、日志记录等。

【讨论】:

  • 谢谢。这就是我一直在寻找的。现在,该应用程序是一个很好的自包含 Windows 服务,保持它这样会很好。它已经具有日志记录和安全性,并且应该与 IIS 一样强大。因此,现在没有理由将其移至 IIS。我会演一场,看看进展如何。如果确实出现了使 IIS 成为更好选择的问题,我将沿着这条路走下去。谢谢。
【解决方案2】:

既然您问的是采取什么路线的问题,我将在 IIS 中托管一个 MVC2 应用程序。为什么在 IIS 已经存在时使用 WCF 重新创建 Web 服务器 - 既然您在问,听起来这是一个可行的选择。

我同意 Darin 的回答,即您可以在任何应用程序中托管 ASP.NET MVC2,但我认为您最终将重新创建大量已使用 IIS 的管道。

从好的方面来说,如果您在 WCF 服务应用程序中提供 ASP.NET MVC2 资源,它可能最终会摇摆不定,并且您可以拥有一个可以出售的不错的应用程序。 :)

【讨论】:

    最近更新 更多