Изменить строку подключения на основе TransactionScope в проекте WCF (baseHttpBinding)

Во всем приложении используйте статический класс tConfig.ConnectionString скачать необходимую строку подключения. К сожалению, мне нужно иметь возможность изменять соединение в зависимости от того, является ли ссылка на TransactionScope, В настоящее время у меня есть этот кусок кода, но статический класс вызывает меня ошибка Stackru. Пожалуйста, помогите реализовать функциональность в этом классе статического (или какое-то лучшее решение).

public static class tConfig
{   
    public static string ConnectionString
    {
        get {
            if (System.Transactions.Transaction.Current != null)
                return "ConnectionString with scope";
            else
                return "ConnectionString without scope";
        }
    }
}

[ServiceContract]
public interface IMyService
{
    [OperationContract]
    string GetData;

    [OperationContract]
    string GetDataWithScope;
}


public class MyService : IMyService
{
    public string GetData
    {
        using (var context = new MyEntities(tConfig.ConnectionString)
        {
            return context.table1.where(x=>x.ID == 1).Select(x=> x.F_NAME).FirstOrDefault().ToString();
        }
    }

    public string GetDataWithScope
    {
        using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromSeconds(600)))
        {
            using (var context = new MyEntities(tConfig.ConnectionString)
            {
                return context.table1.where(x=>x.ID == 1).Select(x=> x.F_NAME).FirstOrDefault().ToString();
            }
        }
    }
}

1 ответ

Я думаю, что это плохая идея использовать трансдакции таким образом. Когда транзакция завершится? в вашем коде нет вызовов Complete или RollBack. Объем каждого вызова будет разным из-за разных потоков каждого вызова.

смотрите эту ссылку. Описывает подход к использованию trasactions на уровне wcf. В этой ситуации клиент может создать и завершить объем транзакции.

Другие вопросы по тегам