Forum Discussion

swo0sh_gt_13163's avatar
swo0sh_gt_13163
Icon for Altostratus rankAltostratus
May 13, 2014

HTTP Stauts code 500 for an IIS based application.

Hello Folks,

 

I hope you are chilling out there! Could anyone of you please help me resolving an issue for an IIS server? The scenario is as follow.

 

  1. Backend Server - a.a.a.a:8090
  2. F5 VS - x.x.x.x:80

While connecting the VS over port 80, the application loads well and authenticate user over NTLM. However doesn't load the tabs post login. Tabs I mean, it loads some frames using Ajax or Javascript I believe, which loads dynamically after successfully login to the server. So post login, it simply loads the backgrooud color of the page, nothing else.

 

However if I run the VS on original port same as backend i.e. 8090, everything starts working well. I am using rewrite iRule to rewrite the response coming from the server (to remove the 8090 port from the response).

 

However while troubleshooting the issue, I got an error in wireshark, coming from server i.e. HTTP 500. Content for the same error looks as following.

 

to an AddressFilter mismatch at the EndpointDispatcher.  Check that the sender and receiver's EndpointAddresses agree

I have tried googling a bit for the error code, and it shows some server side modification needs to be done. However customer denies to apply any changes in Backend server.

 

Any help?

 

7 Replies

  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    Can you post the network packet capture here?

     

    By the way, what are the details on the rewrite you're doing?

     

  • Hi

     

    your application which is making request to BIGIP is working on which protocol and is the configuration are correct on the application .

     

    Any logs generated at F5

     

  • Hello SynAck,

     

    Please read the first thread, that would answer your question. :) Thank you, Darshan

     

  • There's usually one of two reasons this sort of thing will happen:

    1. A rewrite rule isn't catching all of the :8090 URL references sent to the client

    2. The server actually requires this :8090 specified in the Host header

    That's not to say something else could be wrong here, but given that you're getting a 500 response from the server, that leads me to believe you're asking it a question it doesn't like. Is it at all possible that the application, or portions of it, requires the port designation in the Host header? Try this:

    when HTTP_REQUEST {
        if { not ( [HTTP::header Host] ends_with ":8090" ) } {
            HTTP::header replace Host "[HTTP::header Host]:8090"
        }
    }
    

    This will add the :8090 to the Host header on ingress. If that doesn't work and you're still getting 500 responses, you may have to take a closer look at the requests and compare direct vs. proxied.