Я бы предложил ввести шлюз в вашу систему. Шлюзом будет отдельное приложение (или часть одного из ваших существующих приложений: приложение winforms или веб-приложение), которое выступает в качестве посредника для БД как для приложения Windows, так и для веб-приложения. Таким образом, у вас есть только одна точка отказа между запросами БД и самой БД. Спроектируйте этот шлюз для управления параллелизмом, и вам не придется беспокоиться о других процессах, записывающих в вашу базу данных.
Если бы я был на вашем месте, я мог бы выбрать веб-приложение в качестве шлюза. Создайте набор сервисов / репозиториев для взаимодействия с базой данных и обеспечьте доступ к этим сервисам на уровне пользовательского интерфейса веб-приложения. Затем предоставьте эти сервисы через веб-сервисы (или сервисы WCF) вашему приложению Windows, чтобы оно получало доступ к БД, а не напрямую к БД. Таким образом, вы развязали свою систему и создали единую точку входа в хранилище данных. С этим подходом вы, вероятно, решите намного больше проблем, чем параллелизм.