it-swarm.com.de

ASP.NET Web Api - Startup.cs existiert nicht

Ich habe eine ASP.NET-Web-API-Lösung, die keine Startup.cs-Klasse enthält. Ich vermute, das liegt daran, dass die Lösung nicht als MVC-Lösung erstellt wurde.

Der gesamte Code für den Start ist in der Datei Global.asax.cs definiert, wie Sie unten sehen können

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);
    }
}

Jetzt möchte ich jedoch Unterstützung für OAuth und die gesamte Dokumentation, die ich gefunden habe, basiert auf einer Startup.cs mit der folgenden Klasse

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

Kann ich diese neue Klasse einfach zu meiner Lösung hinzufügen und die Lösung funktioniert weiterhin?

Wird dies zu Konflikten mit der Global.asax.cs-Klasse führen?

EDIT : Nachdem ich die Startup.cs-Klasse hinzugefügt habe, kann ich den Haltepunkt, den ich hinzugefügt habe, nicht erreichen ...

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);
        }
    }
}

Irgendeine Idee, was los ist?

35
user3587624

Startup.cs ist Teil des OWIN-Berechtigungspakets. Wenn das Paket nicht über NuGet hinzugefügt wird, kann ich nicht garantieren, dass es funktioniert. Gemessen an dieser Antwort könnte es jedoch in Abhängigkeit von Ihrer Umgebung trotzdem funktionieren.

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

Kurze Antwort: Wenn Sie Microsoft.Owin.Security.OAuth von NuGet installiert haben, sollte das gut sein. Andernfalls müssen Sie es installieren.

Update: Damit MVC die Konfigurationsmethode beim Start aufruft, müssen Sie auch das Microsoft.Owin.Host.SystemWeb-Paket von NuGet installieren. Es gibt nichts Besonderes, das Sie mit web.config ändern müssen. IIS erkennt den Owin-Host automatisch und lädt ihn für Sie.

23
Tyler Stahlhuth

Wenn Sie die Owin-Pakete installiert haben, können Sie die Startklasse einfach erstellen mit:

enter image description here

30
freedeveloper

Sie können Ihre eigene Startklasse hinzufügen, aber Sie müssen sicherstellen, dass Owin sie erkennt. Es gibt verschiedene Möglichkeiten , aber wenn Sie eine Startup-Klasse verwenden möchten, müssen Sie das OwinStartup-Attribut verwenden.

z.B:

[Assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))]
5
SharpLizard

Meine Datei "Startup.cs" wurde erst ausgeführt, nachdem ich diese Zeile in der Datei "Web.config" (im Stammordner) entfernt hatte.

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