Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Client (IE) requests to a static html keep_alive page seem to be working just fine but the network switch doing load balancing can't seem to request the same page when using the same EXACT URL. HTTPERR log entries coming from the switch give 404-NotFound -. Its obviously not making it to IIS but why would HTTPAPI be rejecting this? Where can I see the reason code or error message, or something? Please help :|

Excerpt from HTTPERR: Failed requests by the Network Switch (IP's Removed)

2013-02-14 18:34:55 X.X.X.X 38676 X.X.X.X 80 HTTP/1.1 HEAD /keep_alive.html 404 - NotFound -

This repeats every few seconds as the switch attempts to get the page.

Captured network frames from my troubleshooting:

NETWORK SWITCH

- HTTP: Request, HEAD /keep_alive.html 
    Command: HEAD
  - URI: /keep_alive.html
     Location: /keep_alive.html 
    ProtocolVersion: HTTP/1.1
    Host:  X.X.X.X
    Connection:  Close
    HeaderEnd: CRLF

- HTTP: Response, HTTP/1.1, Status: Not found, URL: 
    ProtocolVersion: HTTP/1.1
    StatusCode: 404, Not found
    Reason: Not Found
    ContentLength:  315
  - ContentType:  text/html; charset=us-ascii
   + MediaType:  text/html; charset=us-ascii
    Server:  Microsoft-HTTPAPI/2.0
    Date:  Fri, 15 Feb 2013 16:52:52 GMT
    Connection:  close
    HeaderEnd: CRLF

DESKTOP

- HTTP: Request, GET /keep_alive.html 
    Command: GET
  - URI: /keep_alive.html
     Location: /keep_alive.html 
    ProtocolVersion: HTTP/1.1
    Accept:  application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Accept-Language:  en-US
    UserAgent:  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)
    Accept-Encoding:  gzip, deflate
    Host:  X.X.X.X
    Connection:  Keep-Alive
  - Cookie:  ...  

- Http: Response, HTTP/1.1, Status: Ok, URL: /keep_alive.html 
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
  - ContentType:  text/html
     MediaType:  text/html
    ContentEncoding:  gzip
    Last-Modified:  Fri, 26 Feb 2010 05:11:00 GMT
    Accept-Ranges:  bytes
    ETag:  "0aca15a2b6ca1:0"
    Vary:  Accept-Encoding
    Server:  Microsoft-IIS/7.5
    XPoweredBy:  ASP.NET
    Date:  Fri, 15 Feb 2013 17:15:13 GMT
    ContentLength:  1514
    HeaderEnd: CRLF
  - payload: HttpContentType =  text/html
     HtmlElement: ...
share|improve this question

1 Answer 1

Found a resolution.

The issue was with the binding configuration in IIS. The network switch generates a request based on IP address. In the request frame from the network switch (as seen above) you will notice that the Host value is being passed as IP Address. A lack of appropriate binding apparently returns a 404 of this nature in the HTTPERR log only. Our IIS configuration only contained a binding for the DNS name.

TL;DR

Make sure your IIS bindings contain an entry for both IP & DNS or you will have a bad time.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.