Когда вы говорите «Эти экземпляры создаются один раз во время выполнения и используются до конца жизни службы», вы имеете в виду объект подключения? Кроме того, вы имеете в виду, что вы сохраняете объект подключения открытым в течение всего срока службы? Если ваш сервис многопоточный, и у вас есть только один экземпляр соединения (например, одноэлементный или статический класс), вы должны убедиться, что соединение используется только одним потоком за раз.
Не видя большого количества кода, это звучит как проблема с тем, как вы относитесь к IDbConnection, который вы получаете с завода, а не с самого завода.
Мы очень интенсивно используем DbProviderFactory для наших многопоточных приложений, которые подключаются к Oracle, FoxPro и SqlServer, и я не видел этой проблемы.
Удачи!
Рикардо.