Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 16497|Odgovoriti: 5

[Vir] .NET/C# večnitna sočasnost z uporabo pit-a HttpWebRequest

[Kopiraj povezavo]
Objavljeno 2021-12-20 15:21:04 | | | |
Pri razporejanju nalog je naloga razporejanja simulirati začetek HTTP zahteve in ugotoviti, da se razporejanje nalog zdi kot lažna smrt, ko je nalog več.

Največje privzeto število zahtevanih povezav na običajnem Windows sistemu je 2, na strežniškem operacijskem sistemu pa je privzeto 10. Če te omejitve sočasne povezave ne spremenite,Število http povezav, ki jih lahko odjemalec vzpostavi hkrati, je le 2 ali 10

System.Net.ServicePointManager.DefaultConnectionLimit To je največje število povezav, ki lahko dosežejo trenutno privzeto nastavitev, kot je prikazano na spodnji sliki:



Ali obstaja privzeta omejitev sočasnosti za HttpClient?

Pred .Net 4.0 je Http operacije uporabljal HttpWebRequest. Privzeto ima zelo konservativno največ 2 omejitve sočasnosti za isto stran, kar pogosto povzroči, da HttpWebRequests privzeto ne doseže idealne hitrosti (verjetno ta strategija frustrira veliko programerjev), poleg tega pa je treba spremeniti vrednost App.config ali ServicePointManager.DefaultConnectionLimit.

MS je v .Net 4.5 uvedel razred HttpClient za upravljanje Http operacij, in mislil sem, da HttpClient in HttpWebRequest sledita isti politiki. Danes sem pri pisanju večnitnega programa za prenos uporabil 10 sočasnih povezav in ugotovil, da HttpClient privzeto nima omejitve sočasnega števila.

Sprva sem mislil, da je. Net 4.5 je odstranil to omejitev sočasnosti (navsezadnje danes tega standarda praktično nihče ne upošteva), nato pa je ustrezno kodo prepisal z WebRequest in ugotovil, da je še vedno omejitev 2 sočasnosti, vrednost ServicePointManager.DefaultConnectionLimit pa je prav tako 2. To pomeni, da HttpClient ni nadzorovan s politiko sočasnosti HttpWebRequest in ni omejitve sočasnosti na sistemski ravni.

Poleg tega sem med testiranjem ugotovil, da HttpWebRequest ne omogoča največ 2 sočasnosti za vse naslove. Na primerZa lokalne HTTP povezave ni omejitve sočasnosti (http://localhost/*).

C# večnitni klici okolja na HttpWebRequest omejitev sočasne povezave

.netov HttpWebRequest ali WebClient ima omejitev sočasne povezave pri večnitnosti, ki je privzeto 2 na namiznih operacijskih sistemih, kot sta Windows XP in Windows 7, ter privzeto 10 na strežniških operacijskih sistemih. Če te omejitve sočasnih povezav ne spremenite, je število HTTP povezav, ki jih lahko odjemalec vzpostavi naenkrat, le 2 ali 10. Za nekatere aplikacije, kot so brskalniki ali pajki, je število 2 ali 10 sočasnosti premajhno in močno vpliva na zmogljivost aplikacije. Ta omejitev sočasne povezave je posledica standardov HTTP 1.0 in HTTP 1.1, ki določata največ 2 sočasni povezavi. Vendar pa glavni brskalniki tega pravila ne upoštevajo več, vendar .NET okvir še vedno privzeto sledi temu pravilu.

Veliko člankov pravi, da lahko asinhroni dostop do HttpWebRequest izboljša sočasno zmogljivost, vendar sem preizkusil, da če ne spremenite privzetega števila sočasnih povezav, sinhroni ali asinhroni dostop ni dober.

V app.config lahko nastavimo tudi največje število sočasnih povezav na naslednji način:

Referenčni članek

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.





Prejšnji:Xshell Xftp Za nadaljevanje uporabe tega programa morate uporabiti najnovejši...
Naslednji:Ukaz Maven pošilja pakete jar tretjih oseb v zasebne repozitorije Nexusa
Objavljeno 26. 12. 2021 ob 17:20:57 |
Uči se učiti。。。。。
Objavljeno 10. 1. 2022 08:42:47 |
Uči se učiti。。。。。
Objavljeno 8. 3. 2022 ob 15:58:54 |
Izvedeti...
 Najemodajalec| Objavljeno 2023-2-18 21:47:09 |
Poleg tega je rešitev

 Najemodajalec| Objavljeno 10. 3. 2023 ob 21:21:15 |
Configure preko web.config

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com