Если используется SQL Server 2008+, то не должно иметь значения, требуется ли несколько подключений.После использования отражателя в SqlWorkflowInstanceStore я обнаружил, что он устанавливает некоторые дополнительные свойства в строке подключения.Вот код, который он использует для создания строки подключения:
SqlConnectionStringBuilder builder2 = new SqlConnectionStringBuilder(connectionString);
builder2.AsynchronousProcessing = true;
builder2.ConnectTimeout = (int)TimeSpan.FromSeconds(15.0).TotalSeconds;
builder2.ApplicationName = "DefaultPool";
SqlConnectionStringBuilder builder = builder2;
return builder.ToString();
Я проверил с помощью профилировщика, что MSDTC не участвует при использовании пользовательского участника ввода-вывода и этого кода строки подключения.Не забудьте передать true в базовый конструктор PersistenceIOParticipant и соответствующим образом передать Transaction.Current.Очевидно, что Microsoft может изменить это в любое время, поэтому используйте по своему усмотрению.