更新 – 2016年7月26日
在下面的答案中,我已经在ASP.NET Core 1.0.0中添加了解决方案.
我已经创建了一个简单的MVC 6应用程序,并且包含了Microsoft.AspNet.WebListener库,所以我可以在IIS之外托管.
从project.json:
"dependencies": { "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4","Microsoft.AspNet.Mvc": "6.0.0-beta4" },"commands": { "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000" }
当我发布这个,我可以运行web.cmd文件,让网站在控制台窗口中运行.大!
但是在OWIN中,您可以使用TopShelf从控制台应用程序启动您的Web应用程序.然后可以将其构建为可执行文件,并作为Windows服务安装.
有没有办法使用ASP.NET 5 MVC 6网络应用程序?
解决方法
您可以将DNX应用程序作为Windows服务运行,但是无法直接运行CMD文件.您会收到以下错误信息:“服务没有及时响应启动或控制请求.”您可以直接指向dnx.exe,并将项目文件夹和命令作为参数传递.
阅读这篇文章更多的细节:http://taskmatics.com/blog/run-dnx-applications-windows-service/
一旦你的应用程序设置了.您可以从服务的OnStart方法引导ASP.NET.为此,您可以使用Microsoft.AspNet.Hosting中的WebHostBuilder.
最后,您可以通过将参数(如“非服务”)传递给Main方法,并在调用ServiceBase.Run之前检查该应用程序是否仍然可以运行,如果存在,您可以直接调用OnStart.该项目的属性使您可以在VS中运行时传递参数.
更新:
有一个后续的帖子建立在上面的一个.它显示了如何在Windows服务中使用静态文件和MVC 6运行ASP.NET 5.链接在这里:http://taskmatics.com/blog/host-asp-net-in-a-windows-service/