Add clearer exception message to HttpResponseStream ODE (#2305)
This commit is contained in:
parent
8f25c4e8ca
commit
5dd590e75e
|
|
@ -500,4 +500,7 @@ For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?l
|
|||
<data name="Http2NotSupported" xml:space="preserve">
|
||||
<value>HTTP/2 support is experimental, see https://go.microsoft.com/fwlink/?linkid=866785 to enable it.</value>
|
||||
</data>
|
||||
<data name="WritingToResponseBodyAfterResponseCompleted" xml:space="preserve">
|
||||
<value>Cannot write to the response body, the response has completed.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
@ -158,7 +158,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
}
|
||||
break;
|
||||
case HttpStreamState.Closed:
|
||||
throw new ObjectDisposedException(nameof(HttpResponseStream));
|
||||
throw new ObjectDisposedException(nameof(HttpResponseStream), CoreStrings.WritingToResponseBodyAfterResponseCompleted);
|
||||
case HttpStreamState.Aborted:
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -878,6 +878,14 @@ 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>
|
||||
|
|
|
|||
|
|
@ -99,7 +99,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
var stream = new HttpResponseStream(Mock.Of<IHttpBodyControlFeature>(), Mock.Of<IHttpResponseControl>());
|
||||
stream.StartAcceptingWrites();
|
||||
stream.StopAcceptingWrites();
|
||||
Assert.Throws<ObjectDisposedException>(() => { stream.WriteAsync(new byte[1], 0, 1); });
|
||||
var ex = Assert.Throws<ObjectDisposedException>(() => { stream.WriteAsync(new byte[1], 0, 1); });
|
||||
Assert.Contains(CoreStrings.WritingToResponseBodyAfterResponseCompleted, ex.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
Loading…
Reference in New Issue