【问题标题】:ASP.NET web application inside app / service [duplicate]应用程序/服务中的 ASP.NET Web 应用程序 [重复]
【发布时间】:2014-03-28 05:28:28
【问题描述】:

我可以在普通控制台、UI 或 Windows 服务应用程序中托管一个 ASP.NET(如果重要的话是 MVC5)Web 应用程序吗?没有 web.config 从哪里开始?

背景是我需要一个提供 WCF 服务和其他管理的主服务,同时我想展示一个带有 ASP.NET MVC 的 UI。

将 ASP.NET Web 应用程序放在单独的程序集中,宿主 由 主程序集 启动是可以接受的。


由于我想添加许多 cmets:

系统已经自托管了一些 WCF 服务。这些也可以为 HTML 提供服务,但这就像重新发明轮子一样。我不喜欢将 IIS 作为依赖项,应用程序应该自己提供一切。由于 WCF 服务使用一些端点定义和ServiceHost,因此添加所需的 HTML-UI 似乎很诱人,就像其他服务一样。

但我也愿意研究其他方法。但这意味着有两个听众,这似乎 - 不太好。

【问题讨论】:

  • 在 IIS 中托管 MVC 应用程序有什么问题?
  • @xxbbcc 这样可能没有什么“错误”,但社区有兴趣在 IIS 之外托管 Web 应用程序(例如在 Windows 服务中)。但在这种特殊情况下,MVC 不能在 IIS 之外托管,因为它对 System.Web 有很强的依赖性。
  • @SimonBelanger 我并不是要暗示这样做是“错误的” - 但是在控制台中托管 Web 应用程序似乎没有多大意义,所以我很好奇。
  • @ZoolWay 是的。但就托管而言,System.Web 将自身注册为 IIS 的 HttpModule。 MVC 依赖 System.Web 来响应 HttpRequest 意味着它需要在 IIS 上注册一个模块。当然,您可以拉 System.Web 并使用帮助程序,什么都没有问题。但是运行 MVC 应用程序将取决于 System.Web IHttpModule 在 IIS 中的注册,如果你想要任何东西进来。你不能使用简单的 TcpListener 或任何其他替代品作为通信通道。
  • @ZoolWay 最近与 Scott Hanselman 和 Louis DeJardin 进行的一次谈话可能对 System.Web 和 IIS 之间的关系和联系感兴趣。演讲是关于 Helios 项目的,但介绍对这个话题很感兴趣。 Building Modern Web Apps: (07) ASP.NET "Project Helios"

标签: .net asp.net-mvc


【解决方案1】:

除了诺瓦克的回答,你可以看看这个:

http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api

它适用于 Web API 应用程序,但您也可以使其适用于 ASP.NET 应用程序。

【讨论】:

    【解决方案2】:

    看看武士刀项目。 http://www.asp.net/vnext/overview/owin-and-katana 您可以在控制台或 Windows 服务中托管您的应用程序。 示例:http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多