I have two windows services. One ('server') acts as a WCF host to which the other ('client') connects. So I have configured a dependency from *client* to *server*. Both are also set up to start automatically.

When I start these services by hand, everything works fine. When I stop both services and tell *client* to start, then *server* will be started before *client* and all is fine.

However, when I reboot the machine only *server* is started.

When I add a diagnostic listener I see it got a `TimeoutException` with the helpful message:

> 
> *The HTTP request to '<http://[server> address]' has exceeded the allotted timeout of 00:00:00. The time allotted to this operation may have been a portion of a longer timeout.* 
> 
> 
> 

At some other SO question there was [an answer](https://stackoverflow.com/questions/919287/wcf-windows-service-timeout/942557#942557) that claims WCF is probably confused about what went wrong and therefore starts lying about the timeout.

Did I perhaps miss a dependency for either service? Does WCF require something that hasn't or is being started when *client* is trying to contact *server*?