[c#] Benötige ich eine Global.asax.cs-Datei, wenn ich eine OWIN Startup.cs-Klasse verwende und die gesamte Konfiguration dorthin verschiebe?



0 Answers

Für diejenigen, die nach den vollständigen Schritten suchen: Wenn Sie eine OWIN-basierte, von IIS gehostete Web-API erstellen möchten, sollten diese Schritte Sie dorthin führen:

  1. File -> New -> Project
  2. Im Dialog, Installed -> templates -> Other Project types -> Visual Studio Solutions -> Blank Solution targeting .NET 4.6
  3. Klicken Sie mit der rechten Maustaste auf die Project -> Web -> ASP.NET Web Application , und fügen Sie Project -> Web -> ASP.NET Web Application (für .NET 4.6) hinzu.

    3.1 Jetzt Wählen Sie in den ASP.NET 4.5-Vorlagen Leer als Vorlage aus

    3.2 Dies erstellt eine leere Lösung mit zwei nugget-Paketen:

    Microsoft.CodeDom.Providers.DotNetCompilerPlatform v 1.0.0
    Microsoft.Net.Compilers v 1.0.0
    
  4. Installiere die folgenden Pakete:

    Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.3
    Install-Package Microsoft.AspNet.WebApi -Version 5.2.3
    Install-Package WebApiContrib.Formatting.Razor 2.3.0.0
    

Für OWIN:

Install-Package Microsoft.Owin.Host.SystemWeb 
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost    

Fügen Sie dann Startup.cs mit der Konfigurationsmethode hinzu:

[assembly:OwinStartup(typeof(namespace.Startup))]
public class Startup
    {
        /// <summary> Configurations the specified application. </summary>
        /// <param name="app">The application.</param>
        public static void Configuration(IAppBuilder app)
        {
            var httpConfiguration = CreateHttpConfiguration();

            app
                .UseWebApi(httpConfiguration);
        }

     /// <summary> Creates the HTTP configuration. </summary>
        /// <returns> An <see cref="HttpConfiguration"/> to bootstrap the hosted API </returns>
        public static HttpConfiguration CreateHttpConfiguration()
        {
            var httpConfiguration = new HttpConfiguration();
            httpConfiguration.MapHttpAttributeRoutes();

            return httpConfiguration;
        }
}

ApiController Sie nun eine Klasse hinzu, die von ApiController erbt, versehen Sie sie mit dem RoutePrefix Attribut und der Aktionsmethode mit Route + HttpGet/PutPost (repräsentiert das Route + HttpGet/PutPost Verb, nach dem Sie Route + HttpGet/PutPost ) und Sie sollten gut sein

Question

Global.asax.cs in einer brandneuen ASP.NET MVC 5-Anwendung, die aus der Vorlage "MVC w / Individual Accounts" erstellt wurde, lösche ich die Klasse Global.asax.cs und verschiebe ihren Konfigurationscode wie folgt auf die Methode Startup.cs Configuration() . Was sind die Nachteile?

public partial class Startup
{
     public void Configuration(IAppBuilder app)
     {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        ConfigureAuth(app);
    }
}

Die Vorteile für mich sind, dass wenn ich ASP.NET 4-Anwendungen auf ASP.NET 5 aktualisiere und Teile verwende, die jetzt in der Startup.cs-Klasse konfiguriert werden müssen, keine Abhängigkeitsinjektion und andere Konfiguration in zwei verschiedenen Klassen, die miteinander verwandt zu sein scheinen zu starten und Konfiguration.




Related