Не уверен, что вы дали нам достаточно, чтобы продолжить, но если я правильно читаю, вы пытаетесь убедиться, что можете поддержать транзакцию через службу WCF? Хотя ваша БД не поддерживает транзакции, а конечные точки WCF находятся за балансировщиком нагрузки? Я правильно понял? Если так ....
Поскольку ваша БД не имеет поддержки транзакций, она переходит на ваш уровень WCF. Это говорит о грубом уровне детализации ваших методов, так что вы можете гарантировать, что один вызов вашей службы WCF в достаточной степени охватит вашу транзакцию. Не распределяйте транзакции по нескольким вызовам WCF, вам нужны проблемы.
ОБНОВЛЕНИЕ: Существуют стратегии, которые можно использовать с балансировщиками нагрузки, которые обеспечивают постоянство соединений, но здесь вам это не поможет. Если вы вызываете EditEntity () последовательно, и первая запись должна инициировать транзакцию, а вторая запись должна завершить транзакцию ... тогда ваша служба недостаточно детализирована.
Объедините эти два вызова в один метод, т. Е. EditEntityComplete ().
Есть ли причина, по которой вы не можете создать один метод, а не два?
ОБНОВЛЕНИЕ № 2: Перефразируя проблему - один метод выполняет записи в базе данных, которая не поддерживает транзакции. Рассматриваемый метод выполняет серию шагов, которые должны быть выполнены по порядку. Метод WCF предоставляет возможность конкуренции за параллелизм нарушить завершение шага в правильном порядке.
Исходя из этого, предполагая, что вам не нужны никакие возвращаемые данные из функции, рассмотрите асинхронную очередь, которая может регистрировать запросы от конечных точек WCF. Затем обработайте очередь из одного фонового процесса.
ЗАКЛЮЧИТЕЛЬНОЕ ПЕРЕСМОТРЕНИЕ:
Пересмотреть требование не менять хранилище данных.
Учитывая требования к нескольким клиентам, необходимость масштабирования, балансировки нагрузки и поддержки транзакций в хранилище данных, последнее предложение - подтолкнуть к изменению базы данных. Понимание этого является статическим требованием, но вы потратите немало усилий, пытаясь реализовать поддержку транзакций, когда множество простых платформ баз данных предоставят ее вам. Попытка воссоздать эту функциональность имеет небольшой плюс, но много недостатков.