На WCF - поставщик OLE DB SQLNCLI11 для связанного сервера xxx не смог начать распределенную транзакцию - PullRequest
0 голосов
/ 26 июня 2019

Когда я выполняю хранимую процедуру, которая содержит связанный сервер из WCF, я получаю сообщение об ошибке:

OLE DB provider \"SQLNCLI11\" for linked server "CLUSTERSQL_DB" was unable to begin a distributed transaction.

У меня есть связанный сервер, настроенный на сервере sql server, где я создаю хранимую процедуру, которая делает запрос:

CREATE PROCEDURE [dbo]. [TestLinkedServer]
AS
  Select * From [CLUSTERSQL_DB]. [Outbound]. [Dbo]. [Table_1]
GO

[CLUSTERSQL_DB] - мой связанный сервер.

Из Студия управления Microsoft SQL Server 17 хранимая процедура выполняется успешно .

Но из WCF с Entity Framework 6.1.3 я получаю сообщение об ошибке:

OLE DB provider \ "SQLNCLI11 \" for linked server "CLUSTERSQL_DB" was unable to begin a distributed transaction.

Пример моего веб-сервиса:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/testLinkedServer", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string testLinkedServer();

public string testLinkedServer()
{
    try
    {
        using (var trans = new TransactionScope())
        {
             Model.MyModel db = new Model.MyModel();
             db.PruebaLinkedServer();
             trans.Complete();
             return "Se Ejecuto el cargue correctamente!" ;
         }
    }
    catch (Exception ex)
    {
         return what = ex.ToString();
    }
}

Я уже активировал DTC с обоих серверов https://www.virtualizationhowto.com/2015/04/ole-db-provider-sqlncli11-linked-server-unable-distributed-transaction/

Это какая-то конфигурация на сервере IIS, где размещена веб-служба, или конфигурация web.config, или конфигурация компьютера?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...