復習:
オセロットゲートウェイを起動すると、アクセスインターフェースに以下のエラーが報告されます:
このプロジェクトはCore 3.1 ASP.NET です。Ocelotで使用されているバージョンは16.0.1です
info: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0] requestId: 0HM8JAOKL2C09:00000006, 前回RequestId: 以前のリクエストIDなし、メッセージ: EndpointRateLimitingは/{url}で有効ではありません
warn: Ocelot.Responder.Middleware.ResponderMiddleware[0] requestId: 0HM8JAOKL2C09:00000006, 前回RequestId: 以前のリクエストIDなし、メッセージ: エラーコード: ConnectionToDownstreamServiceエラーメッセージ: Error Connection to downstream serviceエラーメッセージ: Error Connecting to downstream service, 例外:System.Net.Http.HttpRequest例外:リクエストヘッダーはASCII文字のみでなければなりません。 System.Net.Http.HttpConnection.WriteStringAsync(String s) at System.Net.Http.HttpConnection.WriteHeadersAsync(HttpHeaders ヘッダー、String cookiesFromContainer) System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task'1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) ResponderMiddlewareで検出されたエラー。 リクエストパス:/test1/home/indexのエラー応答設定、リクエストメソッド:GET Fiddlerを使ってパケットをキャッチしたところ、クッキーには中国語の文字列があることがわかりました。
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=测试
ブラウザはクッキーコードを書き込みます(以下のコード値は脱出されません)は以下の問題を再現できます:
クッキーキャッシュを空にすると、下の画像のようにゲートウェイが正常に戻ります:
Ocelotでのミドルウェアの実行順は以下の通りです:
PreErrorResponderMiddleware PreAuthenticationMiddleware 認証ミドルウェア 事前認可ミドルウェア 認証ミドルウェア PreQueryStringBuilderMiddleware
(終わり)
|