ASP.NET Web Api - Startup.cs不存在

时间:2017-03-28 17:30:49

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4

我有一个ASP.NET Web Api解决方案,它不包含Startup.cs类。我认为这是因为该解决方案并未作为MVC解决方案创建。

启动的所有代码都在Global.asax.cs文件中定义,如下所示

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}

但是,现在我想支持OAuth,并且我发现的所有文档都基于具有以下类的Startup.cs

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}

是否可以在我的解决方案中添加这个新类,解决方案是否会继续工作?

这与Global.asax.cs类有冲突吗?

编辑:在我添加Startup.cs课程后,我无法点击我添加到其中的断点...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(MyGame.Startup))]

namespace MyGame
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

知道发生了什么事吗?

5 个答案:

答案 0 :(得分:26)

如果您已安装Owin软件包,则可以使用以下命令创建启动类:

enter image description here

答案 1 :(得分:22)

Startup.cs是OWIN授权包的一部分。如果没有通过NuGet添加包,我不能保证它会起作用。但是,根据这个答案判断,根据您的环境,它可能会起作用。

https://stackoverflow.com/a/24678109/6442626

简短回答:如果您从NuGet安装了Microsoft.Owin.Security.OAuth,那应该是好的。否则,您需要安装它。

更新: 为了让MVC在启动时调用Configuration方法,您还需要从NuGet安装Microsoft.Owin.Host.SystemWeb包。您无需使用web.config更改任何特殊内容,IIS将自动检测Owin主机并为您加载。

答案 2 :(得分:5)

您可以添加自己的启动类,但需要确保Owin正在识别它。 There are several ways to do this ,但如果您想使用Startup类,则需要使用OwinStartup属性。

例如:

[assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))]

答案 3 :(得分:2)

直到我在Web.config上删除此行(在根文件夹中)后,我的Startup.cs才会运行

<add key="owin:AutomaticAppStartup" value="false" /> 

答案 4 :(得分:-1)

是的。首先,您需要从web.config中删除以下行。

<add key="owin:AutomaticAppStartup" value="false" />

只有这样,它才会调用方法startup.cs