Programmēšana

Kā ieviest HTTP.sys tīmekļa serveri ASP.Net Core

ASP.Net Core ir atvērtā koda, starpplatformu, liesa un modulāra sistēma augstas veiktspējas tīmekļa lietojumprogrammu veidošanai. Kestrel ir starpplatformu tīmekļa serveris ASP.Net Core, kas pēc noklusējuma ir iekļauts. Tomēr tam ir ierobežojumi.

Lai apietu šos ierobežojumus, iesaku jums izmantot HTTP.sys - tikai Windows serveri, kura pamatā ir HTTP.sys kodola draiveris, kas ir nobriedušāks, drošāks un mērogojamāks.

Kāpēc jāizmanto HTTP.sys

Parasti jums ir nepieciešams HTTP.sys, ja jums ir jāpakļaujas savam serverim ārpus IIS (Microsoft Internet Information Services). Pieprasījumi vispirms nonāk pie HTTP.sys, kas veidots uz HTTP.sys kodola režīma draivera. HTTP.sys savukārt izveido rindu, kā arī individuālu lietojumprogrammu kopu katram pieprasījumam, pamatojoties uz pieprasījumu.

Varat arī izmantot HTTP.sys, kad nepieciešama funkcija, kuru Kestrel neatbalsta. Funkcijas, kuras atbalsta HTTP.sys, ir:

  1. Windows autentifikācija
  2. Tīkla ligzdas
  3. Ziņu kopīgošana
  4. HTTPS
  5. Atbildes kešatmiņa
  6. Tieša failu pārsūtīšana

Saņemiet sāktu projektu vietnē HTTP.sys

Ja izmantojat Visual Studio 2017, veiciet šīs darbības, lai izveidotu ASP.Net Core Web API projektu:

  1. Visual Studio IDE izvēlieties Fails> Jauns> Projekts.
  2. Parādīto veidņu sarakstā atlasiet ASP.Net Core Web Application (.Net Core).
  3. Kā projekta nosaukumu norādiet Izmantojot HTTPSysInCode.
  4. Noklikšķiniet uz Labi, lai saglabātu projektu.
  5. Logā New .Net Core Web Application atlasiet API.
  6. Augšdaļā esošajā nolaižamajā izvēlnē atlasiet izmantojamās ASP.Net Core versiju.
  7. Noņemiet atzīmi no izvēles rūtiņas Iespējot Docker atbalstu un atlasiet Nav autentifikācijas, jo šeit neizmantosiet nevienu no šiem.
  8. Noklikšķiniet uz Labi.

Šīs darbības rada jaunu ASP.Net pamata projektu ar nosaukumu HTTPSysInCode lietojumprogrammā Visual Studio 2017.

Konfigurējiet HTTP.sys lietojumprogrammu ASP.net Core

Pēc tam jums jāinstalē nepieciešamās paketes. Labākais veids, kā to izdarīt, ir instalēt Microsoft.AspNetCore.All meta pakotni, izmantojot NuGet pakotņu pārvaldnieku. Tas nodrošina, ka visas nepieciešamās pakotnes tiek instalētas vienā piegājienā.

Pēc tam projektā atveriet programmu Program.cs. Tam vajadzētu izskatīties šādi:

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

Kad pakotnes ir instalētas, konfigurējiet HTTP.sys serveri, izmantojot WebHostBuilder paplašinājuma UseHttpSys metodi programmas Program Main galvenajā metodē failā Program.cs. Lūk, kā:

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

Šeit ir pilns programmas klases avota kods:

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

Visbeidzot, palaižot lietojumprogrammu, pārliecinieties, vai esat pareizi izvēlējies palaišanas profilu. Sākotnējais palaišanas profils ir Visual Studio IIS. Šajā piemērā atlasiet Izmantojot HTTPSysInCode; tas ir tas pats, kas projekta nosaukums, kā arī nosaukumvieta.

Palaižot lietojumprogrammu ar palaišanas profilu kā Izmantojot HTTPSysInCode, tiek atvērts konsoles logs, kurā parādīta izpildāmo darbību virkne, pirms tīmekļa pārlūkprogrammā redzat ValuesController metodes Get metodi (pieņemot, ka tas ir jūsu noklusējuma kontrolieris).

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