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:
- Windowsin todennus
- Verkkoliittimet
- Viestien jakaminen
- HTTPS
- Vastausvälimuisti
- 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:
- Valitse Visual Studio IDE: ssä Tiedosto> Uusi> Projekti.
- Valitse näytettyjen mallien luettelosta ASP.Net Core Web -sovellus (.Net Core).
- Määritä projektin nimellä HTTPSysInCode.
- Tallenna projekti napsauttamalla OK.
- Valitse API. New .Net Core Web Application -ikkunasta.
- Valitse haluamasi ASP.Net Core -versio yläreunan avattavasta valikosta.
- Poista valinta Ota Docker-tuki käyttöön ja valitse Ei todennusta, koska et käytä kumpaakaan näistä täällä.
- 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.