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">
|
<data name="Http2NotSupported" xml:space="preserve">
|
||||||
<value>HTTP/2 support is experimental, see https://go.microsoft.com/fwlink/?linkid=866785 to enable it.</value>
|
<value>HTTP/2 support is experimental, see https://go.microsoft.com/fwlink/?linkid=866785 to enable it.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="WritingToResponseBodyAfterResponseCompleted" xml:space="preserve">
|
||||||
|
<value>Cannot write to the response body, the response has completed.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -158,7 +158,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HttpStreamState.Closed:
|
case HttpStreamState.Closed:
|
||||||
throw new ObjectDisposedException(nameof(HttpResponseStream));
|
throw new ObjectDisposedException(nameof(HttpResponseStream), CoreStrings.WritingToResponseBodyAfterResponseCompleted);
|
||||||
case HttpStreamState.Aborted:
|
case HttpStreamState.Aborted:
|
||||||
if (cancellationToken.IsCancellationRequested)
|
if (cancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -878,6 +878,14 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
||||||
internal static string FormatWritingToResponseBodyNotSupported(object statusCode)
|
internal static string FormatWritingToResponseBodyNotSupported(object statusCode)
|
||||||
=> string.Format(CultureInfo.CurrentCulture, GetString("WritingToResponseBodyNotSupported", "statusCode"), 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>
|
/// <summary>
|
||||||
/// Connection shutdown abnormally.
|
/// Connection shutdown abnormally.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
||||||
var stream = new HttpResponseStream(Mock.Of<IHttpBodyControlFeature>(), Mock.Of<IHttpResponseControl>());
|
var stream = new HttpResponseStream(Mock.Of<IHttpBodyControlFeature>(), Mock.Of<IHttpResponseControl>());
|
||||||
stream.StartAcceptingWrites();
|
stream.StartAcceptingWrites();
|
||||||
stream.StopAcceptingWrites();
|
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]
|
[Fact]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue