MSDTC NO esta disponible en el servidor - DotNetClubs
en

DotNetClubs

Comunidades de estudiantes entusiastas de la tecnología

MSDTC NO esta disponible en el servidor

Último artículo 12-03-2007 14:56 escrito por netcigos. 1 respuestas.
Página 1 de 1 (2 elementos)
Ordenar mensajes: Anterior Siguiente
  • 12-03-2007 1:02

    • netcigos
    • Contribuyente Top 25
    • Se unió el 09-12-2007
    • Envíos: 39
    • Puntos: 205

    MSDTC NO esta disponible en el servidor

    using (TransactionScope ambito = new TransactionScope())
                            {
                                alumnoTableAdapter.Update(alumnosDataSet);

                                for (int i = 0; i < lista.Count; i++)
                                {  aux = (materias)listaIdea;
                                   alumno_materiaTableAdpter.Insert(aux.Id_carrera, aux.Id_materia, num_legajo);
                                }

                               ambito.Complete();
                           }

    Ese es el codigo que estoy utilizando para hacer una transaccion , me gustaria saber porque me tira ese error.
    • Puntos de post: 0
  • 12-03-2007 14:56 en respuesta a

    • netcigos
    • Contribuyente Top 25
    • Se unió el 09-12-2007
    • Envíos: 39
    • Puntos: 205

    Re: MSDTC NO esta disponible en el servidor

    Solucion encontrada!!

    Si se utiliza dos dataset distintos o dos datatables distinto dentro del ambiente de transaccion lo considera como si fueran dos origenes de datos distintos , por la cual lo considera como si fuera una transaccion distribuida.
    Para ello se utiliza el cordinador de transacciones de windows DTC , pero no esta habilitado completamente.

    3.4.4 MS DTC no está totalmente habilitado en Windows

    Puesto que el Coordinador de transacciones distribuidas de Microsoft (MS DTC) no está completamente configurado en Windows, las aplicaciones podrían no conseguir dar de alta los recursos de SQL Server Express en una transacción distribuida. Este problema puede afectar a servidores vinculados, consultas distribuidas y procedimientos remotos almacenados que utilicen transacciones distribuidas. Para evitar este tipo de problemas, debe habilitar completamente los servicios de MS DTC en el servidor en el que haya instalado SQL Server Express.

    Para habilitar MS DTC totalmente:
    1. En el Panel de control, abra Herramientas administrativas y, a continuación, haga doble clic en Servicios de componente.

    2. En el panel izquierdo de la Raíz de la consola, haga clic en Servicios de componente y expanda Equipos.

    3. Haga clic con el botón secundario en Mi PC y, a continuación, haga clic en Propiedades.

    4. En la ficha MSDTC, haga clic en Configuración de seguridad.

    5. En Configuración de seguridad, seleccione todas las casillas de verificación.

    6. Compruebe que el nombre de la Cuenta de inicio de sesión DTC esté establecido en NT AUTHORITY\NetworkService.

    Conclusion , no conviene usar datasettipados en un ambiente de transacciones , se complica un poco.

    Que cagada que el todo el programa usa dataset tipado.

    En fin , por lo menos aprendi un poco de transacciones.

    Les dejo un link para aquellos que quieran aprender un poco del tema.

    El primero usa transacciones implicita manejada por el framework,

    http://www.codeproject.com/useritems/TransactionScope20.asp

    El segundo transacciones explicitas
    http://www.codeproject.com/cs/database/transactions.asp




    • Puntos de post: 0
Página 1 de 1 (2 elementos)
(c) DotNetClubs 2008
Ofrecido por Community Server (Commercial Edition)