More detailed request timeout exceptions #2245
This commit is contained in:
parent
49cd0ef97f
commit
42fbba3520
|
|
@ -87,8 +87,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
case RequestRejectionReason.RequestBodyTooLarge:
|
||||
ex = new BadHttpRequestException(CoreStrings.BadRequest_RequestBodyTooLarge, StatusCodes.Status413PayloadTooLarge);
|
||||
break;
|
||||
case RequestRejectionReason.RequestTimeout:
|
||||
ex = new BadHttpRequestException(CoreStrings.BadRequest_RequestTimeout, StatusCodes.Status408RequestTimeout);
|
||||
case RequestRejectionReason.RequestHeadersTimeout:
|
||||
ex = new BadHttpRequestException(CoreStrings.BadRequest_RequestHeadersTimeout, StatusCodes.Status408RequestTimeout);
|
||||
break;
|
||||
case RequestRejectionReason.RequestBodyTimeout:
|
||||
ex = new BadHttpRequestException(CoreStrings.BadRequest_RequestBodyTimeout, StatusCodes.Status408RequestTimeout);
|
||||
break;
|
||||
case RequestRejectionReason.OptionsMethodRequired:
|
||||
ex = new BadHttpRequestException(CoreStrings.BadRequest_MethodNotAllowed, StatusCodes.Status405MethodNotAllowed, HttpMethod.Options);
|
||||
|
|
|
|||
|
|
@ -186,8 +186,8 @@
|
|||
<data name="BadRequest_RequestLineTooLong" xml:space="preserve">
|
||||
<value>Request line too long.</value>
|
||||
</data>
|
||||
<data name="BadRequest_RequestTimeout" xml:space="preserve">
|
||||
<value>Request timed out.</value>
|
||||
<data name="BadRequest_RequestHeadersTimeout" xml:space="preserve">
|
||||
<value>Reading the request headers timed out.</value>
|
||||
</data>
|
||||
<data name="BadRequest_TooManyHeaders" xml:space="preserve">
|
||||
<value>Request contains too many headers.</value>
|
||||
|
|
@ -503,4 +503,7 @@ For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?l
|
|||
<data name="WritingToResponseBodyAfterResponseCompleted" xml:space="preserve">
|
||||
<value>Cannot write to the response body, the response has completed.</value>
|
||||
</data>
|
||||
<data name="BadRequest_RequestBodyTimeout" xml:space="preserve">
|
||||
<value>Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
@ -484,7 +484,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
{
|
||||
// In this case, there is an ongoing request but the start line/header parsing has timed out, so send
|
||||
// a 408 response.
|
||||
BadHttpRequestException.Throw(RequestRejectionReason.RequestTimeout);
|
||||
BadHttpRequestException.Throw(RequestRejectionReason.RequestHeadersTimeout);
|
||||
}
|
||||
|
||||
endConnection = false;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
|
||||
if (_context.RequestTimedOut)
|
||||
{
|
||||
BadHttpRequestException.Throw(RequestRejectionReason.RequestTimeout);
|
||||
BadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTimeout);
|
||||
}
|
||||
|
||||
var readableBuffer = result.Buffer;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
HeadersExceedMaxTotalSize,
|
||||
TooManyHeaders,
|
||||
RequestBodyTooLarge,
|
||||
RequestTimeout,
|
||||
RequestHeadersTimeout,
|
||||
RequestBodyTimeout,
|
||||
FinalTransferCodingNotChunked,
|
||||
LengthRequired,
|
||||
LengthRequiredHttp10,
|
||||
|
|
|
|||
|
|
@ -333,18 +333,18 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
=> GetString("BadRequest_RequestLineTooLong");
|
||||
|
||||
/// <summary>
|
||||
/// Request timed out.
|
||||
/// Reading the request headers timed out.
|
||||
/// </summary>
|
||||
internal static string BadRequest_RequestTimeout
|
||||
internal static string BadRequest_RequestHeadersTimeout
|
||||
{
|
||||
get => GetString("BadRequest_RequestTimeout");
|
||||
get => GetString("BadRequest_RequestHeadersTimeout");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Request timed out.
|
||||
/// Reading the request headers timed out.
|
||||
/// </summary>
|
||||
internal static string FormatBadRequest_RequestTimeout()
|
||||
=> GetString("BadRequest_RequestTimeout");
|
||||
internal static string FormatBadRequest_RequestHeadersTimeout()
|
||||
=> GetString("BadRequest_RequestHeadersTimeout");
|
||||
|
||||
/// <summary>
|
||||
/// Request contains too many headers.
|
||||
|
|
@ -878,14 +878,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
internal static string FormatWritingToResponseBodyNotSupported(object statusCode)
|
||||
=> string.Format(CultureInfo.CurrentCulture, GetString("WritingToResponseBodyNotSupported", "statusCode"), statusCode);
|
||||
|
||||
/// <summary>
|
||||
/// Cannot write to the response body, the response has completed.
|
||||
/// </summary>
|
||||
internal static string WritingToResponseBodyAfterResponseCompleted
|
||||
{
|
||||
get => GetString("WritingToResponseBodyAfterResponseCompleted");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Connection shutdown abnormally.
|
||||
/// </summary>
|
||||
|
|
@ -1800,6 +1792,34 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
internal static string FormatHttp2NotSupported()
|
||||
=> GetString("Http2NotSupported");
|
||||
|
||||
/// <summary>
|
||||
/// Cannot write to the response body, the response has completed.
|
||||
/// </summary>
|
||||
internal static string WritingToResponseBodyAfterResponseCompleted
|
||||
{
|
||||
get => GetString("WritingToResponseBodyAfterResponseCompleted");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cannot write to the response body, the response has completed.
|
||||
/// </summary>
|
||||
internal static string FormatWritingToResponseBodyAfterResponseCompleted()
|
||||
=> GetString("WritingToResponseBodyAfterResponseCompleted");
|
||||
|
||||
/// <summary>
|
||||
/// Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate.
|
||||
/// </summary>
|
||||
internal static string BadRequest_RequestBodyTimeout
|
||||
{
|
||||
get => GetString("BadRequest_RequestBodyTimeout");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate.
|
||||
/// </summary>
|
||||
internal static string FormatBadRequest_RequestBodyTimeout()
|
||||
=> GetString("BadRequest_RequestBodyTimeout");
|
||||
|
||||
private static string GetString(string name, params string[] formatterNames)
|
||||
{
|
||||
var value = _resourceManager.GetString(name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue