Running WCF is behind a loadbalancer, where the LB connection to IIS is http and the client connection to LB is HTTPS

The setup looks something like this:

service client --httpS -> loadbalancer --http -> IIS containing WCF

I get this error:

A message with "https://MyDomain.com/Service.svc" cannot be processed at the receiver due to an AddressFilter mismatch in the EndpointDispatcher. Check if the end addresses of the sender and receiver agree.

I suspect this is because the service is configured to only run http. There is no certificate on the server because it is processed by the loadbalancer.

I know this: http://support.microsoft.com/kb/971842 (FIX: URIs in a WSDL WCF document refer to inaccessible internal instances)

We are working .Net 4.

I can provide more information, just not sure what would be useful at the moment.

thanks

+4
source share
1 answer

If you have user password authentication, then WCF basichttpbinding will not allow this to get around this, clearusernamebinding , which would solve your problem.

If you do not have authentication, then for the above scenario, a generic basichttpbinding will suffice. Just configure your WCF service using basichttpbinding and just make sure that LB sends the request to the web server as http.

+1
source

Source: https://habr.com/ru/post/1386175/


All Articles