ASP0028: 대신 사용하는
가치 | |
---|---|
규칙 ID | ASP0028 |
범주 | 사용 |
수정이 문제를 일으키는지 또는 일으키지 않는지 여부 | 주요 변경 아님 |
원인
지원하는 Any
전혀 작동하지 않을 수 있습니다.
Any
기본 시스템 형식 구현으로 인해 속도가 느려질 수 있습니다.
127.0.0.1
는 IPv4 루프백 주소입니다.
::1
은 IPv6 루프백 주소입니다.
Any
는 IPv4의 와일드카드 주소입니다.
IPv6Any
는 IPv6의 와일드카드 주소입니다.
HTTP/1.x 또는 HTTP/2.0을 사용하는 경우 IPv6의 현재 동작:
-
localhost
는[::1]
로 해석됩니다. -
[::1]
는 서버에서 허용되지 않으므로 다시 시도127.0.0.1
하여 반복되는 주기를 만듭니다.
위의 조건과 함께 사용하면 Any
진단 메시지가 발생합니다 ASP0028
. 다음은 이러한 조건을 초래할 수 있는 코드의 예입니다.
.UseKestrel().ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, ...);
})
규칙 설명
사용 가능한 Kestrel 모든 네트워크 인터페이스에서 들어오는 연결을 수신 대기하도록 구성하는 IPv6
권장 방법은 다음과 같습니다IPv6Any
.
위반 문제를 해결하는 방법
문제가 있는 코드의 경우, `Any
`를 `IPv6Any
`로 교체하십시오.
인수를 ListenAnyIP(Int32) 지정하지 않고 메서드를 사용합니다.
.UseKestrel().ConfigureKestrel(options =>
{
- options.Listen(IPAddress.Any, ...);
+ options.ListenAnyIP(...);
})
또는 다음 필드를 사용합니다.IPv6Any
.UseKestrel().ConfigureKestrel(options =>
{
- options.Listen(IPAddress.Any, ...);
+ options.Listen(IPAddress.IPv6Any, ...);
})
경고를 표시하지 않는 경우
진단에는 ASP0028
정보 수준 심각도가 있습니다. ko-KR: 서버에서 IPv6
사용을 완전히 비활성화하려는 경우, 이 경고를 표시하지 않도록 설정하십시오. 그러나 이 경우 이 문서에 언급된 성능 문제의 위험이 존재합니다.
IPv6
는 시스템 전체 또는 AppCtx 스위치 또는 환경 변수를 통해서만 .NET에 대해 사용하지 않도록 설정할 수 있습니다.
ASP.NET Core