我有一个完整的ASP.NET MVC应用程序(由5个程序集组成,.NET 4.5.1,ASP.NET MVC 5.2.2),它在Visual Studio(使用IISExpress)中运行良好 .
我现在想要一个控制台应用程序,它接受MVC应用程序并托管它(自托管) .
我尝试使用 Microsoft.Owin.Host.HttpListener
和 Nancy.Owin
但是当我得到404页面时,我的配置缺少映射到我的MVC应用程序 .
我有
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}
和
static void Main(string[] args)
{
StartOptions so = new StartOptions("http://localhost:9000/");
using (WebApp.Start<Startup>(so))
{
Console.WriteLine("Press Enter to Exit");
Console.ReadLine();
}
}
但显然缺少从正在运行的MVC应用程序中使用 MyMvcApplication
的配置 . 怎么做?或者如何自我托管呢?
我在网上找到的答案是指旧版本,我希望今天有更简单的方法 .
1 回答
由于ASP.NET vNext尚不可用且我的应用程序使用MVC5,我必须将MVC应用程序完全迁移到Nancy或类似的东西 . MVC5过于依赖IIS .
为了解决这个问题,我决定采用中间解决方案,因为性能不是问题:
我的控制台应用程序创建IIS配置文件并启动IIS express:
如果有人想,这是“停止”片段的一部分:
要停止普通的iis进程,你应该向它发送WM_QUIT . 这可能对此有所帮助: