2015-01-27 6 views
4

우리는 부분적으로 IP 주소를 기반으로 사용자의 위치를 ​​지오 코딩하는 ASP.NET 5 (vNext) 응용 프로그램을 작성하고 있습니다. IP 주소가 아님을 우리가 IHttpConnectionFeature에서 오는 clientIpAddress를 기록 할 때ASP.NET 5 응용 프로그램과 IIS 로그간에 일치하지 않는 클라이언트 IP 주소

var connection = context.HttpContext.GetFeature<IHttpConnectionFeature>(); 
if (connection != null) { 
    clientIpAddress = connection.RemoteIpAddress.ToString(); 
} 

, 우리는 발견 : 우리는 웹에서 예제의 숫자에서 볼 수있는 다음 코드를 사용하여 클라이언트의 IP 주소를 잡기 위해 시도하고 옳은.

그러나 IIS에서 올바른 클라이언트 IP 주소를 캡처하고 있습니다. 우리는 IIS 제어판을 통해 요청을 검사하여이를 확인합니다.

IIS 요청과 응용 프로그램 코드 사이에 클라이언트의 IP 주소가 수정되거나 IIS에서 응용 프로그램 코드가 제대로 작동하지 않습니다. 또는 IIS가 클라이언트의 IP 주소를 해독 할 때 추가 작업을 수행 할 가능성이 있습니다 (예 : 응용 프로그램 코드에서 모방해야하는 작업).

IIS 요청 로그에서 클라이언트의 IP 주소가 올바르지 만 위의 응용 프로그램 코드에서 올바르지 않은 이유는 무엇입니까? 코드에서 올바른 클라이언트 IP 주소를 얻으려면 어떻게해야합니까?

관련 소프트웨어 버전 :

  • ASP.NET 5 (vNext)
  • KRE 1.0.0 - 베타 2는
  • 8

업데이트를 IIS : 우리는 달렸다. Request.UserHostAddress을 사용하여 IP 주소를 검색하는 동일한 IIS 서버의 NET 4.5 응용 프로그램과 올바른 IP (동일한 IIS가 로깅)를 검색 한 경우 그래서 그것은 새로운 .NET 5 코드의 문제인 것처럼 보입니다.

답변

0

이것은 Microsoft.AspNet.Loader.IIS 패키지의 버그로 인한 것입니다. 다행히 Microsoft의 직원들이 신속하게 수정 사항을 게시했습니다.

자세한 내용은 Github 문제를 참조하십시오. https://github.com/aspnet/HttpAbstractions/issues/181