2012-05-28 2 views
0

내가 다음 코드 줄을 사용하는 것을 시도하고있다 :"요청 된 이름이 유효가 ..."

Dim lobjPingReply As Net.NetworkInformation.PingReply = 
lobjPingObject.Send(lobjMyURI.DnsSafeHost) 

내 단위 테스트는이 닿으면 라인과 호스트 내가

실제로 나는이 오류

을 얻을 같은 있었던 파라미터를 사용하여 코드를 디버깅

"요청 된 이름이 유효"이러한 호스트가 알려져되지 않았다 "다음과 같은 오류가 유효하지 않습니다,하지만 요청한 유형의 데이터가 발견되었습니다 "

왜 동일한 매개 변수를 사용하는 동일한 줄이 다른 응답을 제공해야합니까?

답변

2

오류 - WSANO_DATA
오류 코드 - 11004

유효한 이름, 요청 된 형태의 데이터 레코드가 없습니다. 요청한 이름이 유효하고 데이터베이스에서 발견되었지만 해결할 올바른 관련 데이터가 없습니다. 이에 대한 일반적인 예는 DNS (Domain Name Server)를 사용하는 호스트 이름 - 주소 변환 시도 (gethostbyname 또는 WSAAsyncGetHostByName 사용)입니다. MX 레코드가 반환되지만 A 레코드가 없어 호스트 자체는 존재하지만 직접 도달 할 수는 없습니다.

오류 - WSAHOST_NOT_FOUND
오류 코드 - 11001 호스트를 찾을 수 없습니다. 해당 호스트를 알 수 없습니다. 이름은 공식 호스트 이름 또는 별칭이 아니거나 쿼리되는 데이터베이스에서 찾을 수 없습니다. 이 오류는 프로토콜 및 서비스 쿼리에 대해 반환 될 수도 있으며 지정된 이름을 관련 데이터베이스에서 찾을 수 없음을 의미합니다.

이 두 오류는 서로 겹치고 있으므로 소켓에서 생성 된 마지막 오류가 발생합니다. 그래서 당신은 다른 가치를 얻고 있습니다. 큰 감사 그게

See here for reference

+0

,하지만 내가 어떻게 두 가지 오류의 오버랩하는 중지 할 수 있습니다? + 어느 경우에서나 eneter 호스트는 INVALID 호스트이므로 "호스트 자체가 존재 함을 나타내지 만 직접 도달 할 수는 없습니다"라고 말할 때는 이해할 수 없습니다. 그것이 있어야하기 때문에. –

+0

WSANO_DATA의 경우 도메인의 컴퓨터에 액세스하려고하는 경우. 로컬 컴퓨터에 컴퓨터 이름이 캐시되었지만 이제 해당 컴퓨터가 네트워크에서 제거되었을 수 있습니다. 따라서이 오류는 호스트 항목이 데이터베이스 캐시에서 사용할 수 있지만 그곳에 도달 할 수없는 것보다 그림에와 있습니다. –

+0

도움 주셔서 감사합니다. –

관련 문제