Всякий раз, когда я обращаюсь к хранимой процедуре с таблицей в памяти через Web API TransactionScope
, я получаю эту ошибку:
Текущая транзакция не может быть зафиксирована и не может поддерживать операции записи в файл журнала. Откат транзакции. Текущая транзакция не может быть зафиксирована и не может поддерживать операции записи в файл журнала. Откат транзакции. Текущая транзакция не может быть зафиксирована и не может поддерживать операции записи в файл журнала. Откат транзакции. В конце пакета обнаруживается незафиксированная транзакция. Откат транзакции
Я попытался выполнить эту же хранимую процедуру непосредственно в SQL Server Management Studio, и она работает нормально.
Кроме того, когда я удаляю TransactionScope
из Web API, он также работает нормально. Но я хочу использовать TransactionScope
внутри Web API
Внутри хранимой процедуры у меня есть следующие вещи:
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
BEGIN TRY
SELECT ITEMID FROM SAMPLE_IN_MEMORY_TABLE
----
END TRY
BEGIN CATCH
--
END CATCH
Внутри Web API следующим образом я использую хранимую процедуру
QueriesTableAdapter qa = new QueriesTableAdapter();
using (TransactionScope scope = new TransactionScope())
{
qa.SpSampleInMemoeryAccess(g_OutParameter64);
if (g_OutParameter64 > 0)
{
scope.Complete();
Status = true;
}
else
{
Status = false;
}
}
}