Ohjelmointi

Kuinka toteuttaa HTTP.sys-verkkopalvelin ASP.Net Core -sovelluksessa

ASP.Net Core on avoimen lähdekoodin, alustojen välinen, kevyt ja modulaarinen kehys tehokkaiden verkkosovellusten rakentamiseen. Kestrel on ASP.Net Core -ympäristön välinen verkkopalvelin, joka sisältyy oletusarvoisesti. Sillä on kuitenkin rajoituksia.

Näiden rajoitusten kiertämiseksi suosittelen, että käytät HTTP.sys-protokollaa, joka on vain Windows-HTTP-palvelin, joka perustuu HTTP.sys-ytimen ohjaimeen, joka on kypsempi, turvallisempi ja skaalautuvampi.

Miksi sinun pitäisi käyttää HTTP.sys

Tarvitset yleensä HTTP.sys-tiedostoa, kun sinun on paljastettava palvelimesi IIS: n (Microsoft Internet Information Services) ulkopuolelle. Pyynnöt tulevat ensin HTTP.sys-tiedostoon, joka on rakennettu HTTP.sys-ydintilan ohjaimeen. HTTP.sys puolestaan ​​luo jonon sekä erillisen sovelluspoolin jokaiselle pyynnölle pyynnön perusteella.

Voit käyttää HTTP.sys-tiedostoa myös silloin, kun tarvitset ominaisuutta, jota Kestrel ei tue. HTTP.sys: n tukemia ominaisuuksia ovat:

  1. Windowsin todennus
  2. Verkkoliittimet
  3. Viestien jakaminen
  4. HTTPS
  5. Vastausvälimuisti
  6. Suora tiedostojen lähetys

Hanki projekti, joka on aloitettu HTTP.sys-tiedostossa

Jos käytät Visual Studio 2017: tä, luo ASP.Net Core Web API -projekti seuraavasti:

  1. Valitse Visual Studio IDE: ssä Tiedosto> Uusi> Projekti.
  2. Valitse näytettyjen mallien luettelosta ASP.Net Core Web -sovellus (.Net Core).
  3. Määritä projektin nimellä HTTPSysInCode.
  4. Tallenna projekti napsauttamalla OK.
  5. Valitse API. New .Net Core Web Application -ikkunasta.
  6. Valitse haluamasi ASP.Net Core -versio yläreunan avattavasta valikosta.
  7. Poista valinta Ota Docker-tuki käyttöön ja valitse Ei todennusta, koska et käytä kumpaakaan näistä täällä.
  8. Napsauta OK.

Nämä vaiheet luovat uuden ASP.Net-ydinprojektin nimeltä HTTPSysInCode Visual Studio 2017: ssä.

Määritä ASP.net Core -sovellus HTTP.sys: lle

Seuraavaksi sinun tulee asentaa tarvitsemasi paketit. Paras tapa tehdä tämä on asentaa Microsoft.AspNetCore.All-metapaketti NuGet-paketinhallinnan kautta. Tämä varmistaa, että kaikki tarvittavat paketit asennetaan kerralla.

Avaa sitten projektisi Program.cs-tiedosto. Sen pitäisi näyttää tältä:

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

Kun paketit on asennettu, määritä HTTP.sys-palvelin WebHostBuilderin UseHttpSys-laajennusmenetelmän avulla Program.cs-tiedoston Program-luokan päämenetelmässä. Näin:

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

Tässä on ohjelmaluokan täydellinen lähdekoodi:

käyttämällä Microsoft.AspNetCore; käyttämällä Microsoft.AspNetCore.Hosting; käyttämällä Microsoft.AspNetCore.Server.HttpSys; nimitila HTTPSysInCode-koodin avulla {public class Program {public static void Main (string [] args) {CreateWebHostBuilder (args) .Run (); } public staattinen IWebHost CreateWebHostBuilder (merkkijono [] args) => WebHost.CreateDefaultBuilder (args) .UseStartup () .UseHttpSys (options => {options.Authentication.Schemes = AuthenticationSchemes.None; options.Authentication.A true AllowAnonymous MaxConnections = 100; options.MaxRequestBodySize = 1000000; options.UrlPrefixes.Add ("// localhost: 5000");}) .Build (); }}

Lopuksi, kun suoritat sovelluksen, varmista, että valitset käynnistysprofiilin asianmukaisesti. Oletusarvoinen käynnistysprofiili on Visual Studion IIS. Valitse tässä esimerkissäHTHTPSysInCode-käyttö; se on sama kuin projektin nimi ja nimitila.

Kun suoritat sovelluksen käynnistysprofiililla nimellä HTTPSysInCode, avautuu konsoli-ikkuna, jossa näkyvät suoritettavat vaiheet, ennen kuin näet ValuesControllerin Get-menetelmän (olettaen, että olet oletusohjaimesi) tulosteen selaimessasi.

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