Programavimas

Kaip įdiegti HTTP.sys tinklo serverį ASP.Net Core

ASP.Net Core yra atviro kodo, daugiaplatformė, liesa ir modulinė sistema, skirta kurti našias žiniatinklio programas. „Kestrel“ yra kelių platformų ASP.Net Core žiniatinklio serveris, kuris pagal numatytuosius nustatymus yra įtrauktas. Tačiau jis turi apribojimų.

Norėdami apeiti šiuos apribojimus, siūlau naudoti HTTP.sys - tik „Windows“ HTTP serverį, pagrįstą brandesne, saugesne ir keičiama didesne HTTP.sys branduolio tvarkykle.

Kodėl turėtumėte naudoti HTTP.sys

Paprastai jums reikia HTTP.sys, kai jūs turite išleisti savo serverį išoriniam pasauliui be IIS („Microsoft Internet Information Services“). Užklausos pirmiausia gaunamos į HTTP.sys - sukurtą naudojant HTTP.sys branduolio režimo tvarkyklę. Savo ruožtu „HTTP.sys“ sukuria eilę ir atskirą programų grupę kiekvienai užklausai, pagrįstai užklausa.

Taip pat galite naudoti HTTP.sys, kai jums reikia funkcijos, kurios nepalaiko „Kestrel“. Funkcijos, kurias palaiko HTTP.sys:

  1. „Windows“ autentifikavimas
  2. Tinklo lizdai
  3. Įrašų bendrinimas
  4. HTTPS
  5. Atsakymo talpykla
  6. Tiesioginis failų perdavimas

Gaukite projektą, pradėtą ​​HTTP.sys

Jei naudojate „Visual Studio 2017“, atlikite šiuos veiksmus, kad sukurtumėte ASP.Net Core Web API projektą:

  1. „Visual Studio IDE“ pasirinkite Failas> Naujas> Projektas.
  2. Rodomų šablonų sąraše pasirinkite ASP.Net Core Web Application (.Net Core).
  3. Kaip projekto pavadinimą nurodykite HTTPSysInCode naudojimą.
  4. Spustelėkite Gerai, kad išsaugotumėte projektą.
  5. Pasirinkite API „New .Net Core Web Application“ lange.
  6. Viršuje esančiame išskleidžiamajame meniu pasirinkite norimą naudoti „ASP.Net Core“ versiją.
  7. Panaikinkite žymės langelį Įgalinti „Docker“ palaikymą ir pasirinkite Be autentifikavimo, nes čia nenaudosite nė vieno iš jų.
  8. Spustelėkite Gerai.

Šie veiksmai sukuria naują „ASP.Net“ pagrindinį projektą pavadinimu „HTTPSysInCode“ naudojimas „Visual Studio 2017“.

Konfigūruokite „ASP.net Core“ HTTP.sys programą

Tada turėtumėte įdiegti reikiamus paketus. Geriausias būdas tai padaryti yra įdiegti „Microsoft.AspNetCore.All“ meta paketą per „NuGet“ paketų tvarkyklę. Tai užtikrina, kad visi reikalingi paketai bus įdiegti vienu ypu.

Tada savo projekte atidarykite failą Program.cs. Tai turėtų atrodyti taip:

public class Programa {public static void Main (string [] args) {CreateWebHostBuilder (args). Build (). Run (); } public static IWebHostBuilder CreateWebHostBuilder (string [] args) => WebHost.CreateDefaultBuilder (args) .UseStartup (); }

Įdiegę paketus, sukonfigūruokite HTTP.sys serverį naudodami „WebHostBuilder“ „UseHttpSys“ plėtinio metodą pagrindiniame programos programos metodo faile Program.cs. Štai kaip:

public static void Pagrindinis (eilutė [] args) {CreateWebHostBuilder (args). Vykdyti (); } public static IWebHost CreateWebHostBuilder (string [] args) => WebHost.CreateDefaultBuilder (args) .UseStartup () .UseHttpSys (options => {options.Authentication.Schemes = AuthenticationSchemes.None; options.Authentication.AllowAnonymous „MaxConnections“ = 100; options.MaxRequestBodySize = 1000000; options.UrlPrefixes.Add ("// localhost: 5000");}) .Build ();

Čia yra visas programos klasės šaltinio kodas:

naudojant „Microsoft.AspNetCore“; naudojant „Microsoft.AspNetCore.Hosting“; naudojant „Microsoft.AspNetCore.Server.HttpSys“; vardų sritis, naudojant HTTPSysInCode {public class Program {public static void Main (string [] args) {CreateWebHostBuilder (args). Run (); } public static IWebHost CreateWebHostBuilder (string [] args) => WebHost.CreateDefaultBuilder (args) .UseStartup () .UseHttpSys (options => {options.Authentication.Schemes = AuthenticationSchemes.None; options.Authentication.AllowAnonymous „MaxConnections“ = 100; options.MaxRequestBodySize = 1000000; options.UrlPrefixes.Add ("// localhost: 5000");}) .Build (); }}

Galiausiai, paleidę programą, įsitikinkite, kad tinkamai pasirinkote paleidimo profilį. Numatytasis paleidimo profilis yra „Visual Studio“ IIS. Šiame pavyzdyje pasirinkite UsingHTTPSysInCode; tai tas pats, kas projekto pavadinimas, taip pat vardų sritis.

Kai paleidžiate programą su paleidimo profiliu kaip „UsingHTTPSysInCode“, atidaromas konsolės langas, kuriame rodoma atliekamų veiksmų serija, kol jūsų žiniatinklio naršyklėje nematote „ValuesController“ metodo Gauti išvesties (darant prielaidą, kad tai jūsų numatytasis valdiklis).

$config[zx-auto] not found$config[zx-overlay] not found