MVC项目启动

MVC project startup

我有一个现有的 MVC 项目,它有一个淘汰赛前端和一个 WebAPI 后端。

由于需求的变化,我不得不从项目中删除所有后端文件,只留下前端文件。

现在我需要一个 WebAPI 控制器回到项目中。

为了配置 WebAPI,我需要在 C# 代码中找到一个入口点来触发配置方法。

我的理解是,如果项目有一个 Global.asax 文件,Application_Start() 将在启动时自动触发。而且如果我有一个 startup.cs 文件和 owinStartup 属性,这也会默认触发。

所以我从另一个项目中复制了这两个文件并根据需要进行了编辑,但是启动时都没有触发这些文件。

我假设我缺少某种配置,但不确定是什么?

这是我的 startup.cs 文件:

using System.Web.Http;
using Microsoft.Owin;
using Newtonsoft.Json;
using Owin;

[assembly: OwinStartup(typeof(ClearviewLocal_ONFrontEnd_Rest.Startup))]
namespace ClearviewLocal_ONFrontEnd_Rest
{
    /// <summary>
    /// Application startup
    /// </summary>
    public class Startup
    {
        /// <summary>
        /// Configure app
        /// </summary>
        /// <param name="app">Owin AppBuilder</param>
        public void Configuration(IAppBuilder app)
        {         
            var config = new HttpConfiguration();         //breakpoint here that is not being hit
        }
    }
}

这里是 Global.asax 文件:

using System;
using System.Web;
using System.Web.Http;

namespace ClearviewLocal_ONFrontEnd_Rest
{
    /// <summary>
    /// 
    /// </summary>
    public class WebApiApplication : HttpApplication
    {
        /// <summary>
        /// 
        /// </summary>
        protected void Application_Start()
        {
            var config = new HttpConfiguration(); //Breakpoint here            
        }
    }
}

我看过这个问题的答案:OwinStartup not Starting ... Why? 但这段代码从未出现在 Web.Config

另外,我没有从项目中删除任何引用

这个问题的公认答案 OwinStartup not firing 似乎解决了我的问题:

” 确保你已经在项目中安装了 Microsoft.Owin.Host.SystemWeb 包。 IIS 托管应用程序中的启动检测需要此包。 “