Вы должны сначала определить, что вызывает таймаут исключение - то обработать исключение должным образом.
Если перерывов службы (хотя я сомневаюсь, что тайм-аут подпадает под эту категорию), вы можете поймать его, используя следующие в global.asax:
serviceHost.Faulted += new EventHandler(serviceHost_Faulted);
Примечание это не является хорошим решением. Найдите точную проблему, затем используйте издевательские рамки (например, Moq), чтобы имитировать, как ваш код (как клиент, так и служба) будет вести себя/восстанавливаться, если ваша служба занимает слишком много времени, чтобы ответить.