HttpContext는 자체 호스팅에서 지원되지 않습니다. 웹 api 자체 호스팅을 사용하여 클라이언트의 IP 주소 얻기
나는 내 자신이 통합 테스트는 다음이 코드 중 하나가 작동하지 않습니다에 메모리 호스팅 실행
:// OWIN Self host
var owinEnvProperties = request.Properties["MS_OwinEnvironment"] as IDictionary<string, object>;
if (owinEnvProperties != null)
{
return owinEnvProperties["server.RemoteIpAddress"].ToString();
}
owinEnvProperties는 항상 null입니다.
그렇다면 자체 호스팅을 사용하여 클라이언트 IP 주소를 얻으려면 어떻게해야합니까? 당신이 널 (null)에 대한 테스트를 걱정하지 않는 경우,
string ipAddress;
Microsoft.Owin.IOwinContext owinContext = Request.GetOwinContext();
if (owinContext != null)
{
ipAddress = owinContext.Request.RemoteIpAddress;
}
나 :
"메모리"또는 "자체 호스트"를 사용하고 있습니까? "메모리 상주"는 네트워크 상호 작용이 없기 때문에 IP 주소를 갖지 않습니다. –
내 통합 테스트가 호스트 owin을 시작하지는 않지만 웹 API 요청 파이프 라인을 인 메모리 테스트합니다. 좋아, 적어도 내가 localhost 얻을 줄 알았지 만, 당신은 바로 올 것이다 : p – Pascal
"네트워크 상호 작용이 없기 때문에"그렇다면 나는 정말로 빨리 메모리 내 테스트 또는 새로운 HttpSelfHostServer로 실제 자기 호스트 테스트를 원한다고 다시 생각해야한다. (config) .OpenAsync() etc ... 그러면 HttpServer는 버그와 해결 방법을 제외하고 나에게 아무것도주지 않는다. – Pascal