Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 40852|Vastaus: 0

[ASP.NET] Ocelot Request -otsikoissa on oltava vain ASCII-merkkejä

[Kopioi linkki]
Julkaistu 10.5.2021 15.24.29 | | | |
Arvostelu:

Ocelot-sarja (1) ASP.NET Core Gateway käytännössä
https://www.itsvse.com/thread-9284-1-1.html


Kun käynnistät ocelot-yhdyskäytävän, seuraava virhe raportoidaan pääsyrajapinnalle:
Tilakoodi: 502; Bad Gateway                                                                                                                                                                                                                                                                                                                                                                                                                      
Projekti on ASP.NET Core 3.1,Ocelotin käyttämä versio on versio 16.0.1



info: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0]
      requestId: 0HM8JAOKL2C09:00000006, previousRequestId: ei aiempaa pyyntö-ID:tä, viesti: EndpointRateLimiting ei ole käytössä /{url}
warn: Ocelot.Responder.Middleware.ResponderMiddleware[0]
      requestId: 0HM8JAOKL2C09:00000006, previousRequestId: ei aiempaa pyyntö-ID:tä, viesti: Error Code: ConnectionToDownstreamServiceError Message: Error connecting to downstream service, poikkeus: System.Net.Http.Http.RequestException: Pyyntöotsikoissa on oltava vain ASCII-merkkejä.
         osoitteessa System.Net.Http.Http.HttpConnection.WriteStringAsync(String s)
         osoitteessa System.Net.Http.Http.Http.Connection.WriteHeadersAsync(HttpHeaders headers, String cookiesFromContainer)
         osoitteessa System.Net.Http.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
         at System.Net.Http.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
         at System.Net.Http.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
         at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
         at System.Net.Http.Http.Client.FinishSendAsyncBuffered (Task'1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
         osoitteessa Ocelot.Requester.HttpClientHttpRequester.GetResponse(HttpContext httpContext) virheitä, jotka löytyi ResponderMiddlewaresta. Virhevastauksen asettaminen pyyntöpolulle:/test1/home/index, pyyntömenetelmä: GET
Käyttäessäni Fiddleriä seuraavien pakettien keräämiseen huomasin, että keksissä on kiinalainen naru, seuraavasti:




Host: localhost:5002
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: aaa=测试


Selain kirjoittaa evästekoodin (Seuraavaa koodiarvoa ei poisteta) voi toistaa ongelman:

Selaimen konsoli kirjoittaa evästeitä
https://www.itsvse.com/thread-4682-1-1.html
Yritä tyhjentää evästevälimuisti ja yhdyskäytävä palaa normaaliksi kuten alla olevassa kuvassa näkyy:



Middleware-menetelmän toteutusjärjestys Ocelotilla on seuraava:

PreErrorResponderMiddleware
PreAuthenticationMiddleware
AuthenticationMiddleware
PreAuthorisationMiddleware
AuthorisationMiddleware       
PreQueryStringBuilderMiddleware


(Loppu)




Edellinen:ASP.NET Core saa pyynnön täyden URL-linkin
Seuraava:Redis Benchmark -suorituskykytesti
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com