Skip to content

Commit 30ef98a

Browse files
committed
Clean up ASP0028 /4
1 parent 99dacb2 commit 30ef98a

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

aspnetcore/diagnostics/asp0028.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,17 @@ uid: diagnostics/asp0028
1717

1818
## Cause
1919

20-
On the server machine that supports IPv6, listening to `Any`, rather than `IPv6Any` will either not work or be slower than necessary, because of the [underlying System types implementation](https://github.com/dotnet/runtime/issues/82404).
20+
`IPv6Any` is preferred to `Any`, support IPv6 because `Any` is slower than `IPv6Any`. In some cases, `Any` may not work at all. `Any` has performance problems due to the [underlying System types implementation](https://github.com/dotnet/runtime/issues/82404).
2121

22-
At the moment of current article publishing, in case of HTTP/1.x or HTTP/2.0 a name like `localhost` will resolve to `[::1]`, which won't be accepted by the server, forcing a retry with `127.0.0.1` (i.e. failed attempt before each connection).
22+
`127.0.0.1` is the IPv4 loopback address. `::1` is the IPv6 loopback address. `Any` is the wildcard address for both IPv4 and IPv6. `IPv6Any` is the wildcard address for IPv6 only.
23+
24+
Currently, when using HTTP/1.x or HTTP/2.0:
25+
26+
* `localhost` resolve tos `[::1]`.
27+
* `[::1]` isn't accepted by the server, which forces a retry using `127.0.0.1`, and the cycle continues.
28+
29+
Using `Any` with the preceding conditions is reported with a diagnostic message:
2330

24-
This usage will be reported with a diagnostic message:
2531
```csharp
2632
.UseKestrel().ConfigureKestrel(options =>
2733
{

0 commit comments

Comments
 (0)