MVC5 自托管 OWIN returns 404
MVC5 self-hosted OWIN returns 404
我使用 MVC5 和 ASP.NET 4.5 创建了一个简单的 Web 应用程序。在 运行 本地使用该 Web 应用程序作为启动项目工作得很好。我正在尝试将其转换为 OWIN 自托管应用程序,因此我向项目添加了一个控制台程序并将其设置为 Visual Studio 中的启动项目(我使用的是 2013 Community)。
这是我的程序class:
class Program
{
static void Main(string[] args)
{
using (Microsoft.Owin.Hosting.WebApp.Start<WebApp.Startup>("http://localhost:9000"))
{
Console.WriteLine("Press [enter] to quit...");
Console.ReadLine();
}
}
}
这运行良好,不会触发任何错误。但是,当我尝试访问 URL 时,我得到的只是一个空白页面,实际上是一个 404 错误页面(页面中没有任何内容,但查看网络跟踪我看到响应是 404).
这是 WebApp 的启动 class:
public class Startup
{
public void Configuration(IAppBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
}
}
是的,它是空的,因为我没有太多事情要做(没有要触发的身份验证或数据库模式更新)。我确定我遗漏了一些明显的东西,但我似乎找不到任何文章详细说明将 OWIN 正确连接到 MVC5 项目所需的条件。
您不能将自托管 OWIN 与 MVC 5 一起使用。这是目前 MVC 的限制之一。 MVC 6 完全解决了这个问题。 MVC 5 对 System.Web 和 IIS 管道有很深的依赖性,这使得它不适合 运行 宁自托管。您需要等待 MVC 6,或者在 IIS 或 IIS Express 上使用 OWIN。
当 MVC 6 发布时,您将能够执行与此类似的操作:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
}
其他 Web 平台,如 WebAPI 2+ 和 SignalR 2,已经从 System.Web 依赖项进行了此转换,并且可以 运行 在自托管 OWIN 上。
我使用 MVC5 和 ASP.NET 4.5 创建了一个简单的 Web 应用程序。在 运行 本地使用该 Web 应用程序作为启动项目工作得很好。我正在尝试将其转换为 OWIN 自托管应用程序,因此我向项目添加了一个控制台程序并将其设置为 Visual Studio 中的启动项目(我使用的是 2013 Community)。
这是我的程序class:
class Program
{
static void Main(string[] args)
{
using (Microsoft.Owin.Hosting.WebApp.Start<WebApp.Startup>("http://localhost:9000"))
{
Console.WriteLine("Press [enter] to quit...");
Console.ReadLine();
}
}
}
这运行良好,不会触发任何错误。但是,当我尝试访问 URL 时,我得到的只是一个空白页面,实际上是一个 404 错误页面(页面中没有任何内容,但查看网络跟踪我看到响应是 404).
这是 WebApp 的启动 class:
public class Startup
{
public void Configuration(IAppBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
}
}
是的,它是空的,因为我没有太多事情要做(没有要触发的身份验证或数据库模式更新)。我确定我遗漏了一些明显的东西,但我似乎找不到任何文章详细说明将 OWIN 正确连接到 MVC5 项目所需的条件。
您不能将自托管 OWIN 与 MVC 5 一起使用。这是目前 MVC 的限制之一。 MVC 6 完全解决了这个问题。 MVC 5 对 System.Web 和 IIS 管道有很深的依赖性,这使得它不适合 运行 宁自托管。您需要等待 MVC 6,或者在 IIS 或 IIS Express 上使用 OWIN。
当 MVC 6 发布时,您将能够执行与此类似的操作:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
}
其他 Web 平台,如 WebAPI 2+ 和 SignalR 2,已经从 System.Web 依赖项进行了此转换,并且可以 运行 在自托管 OWIN 上。