Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error de canalizaciones con nombre (named pipes) SQL Server

Estas en el tema de Error de canalizaciones con nombre (named pipes) SQL Server en el foro de SQL Server en Foros del Web. Hola a todos: Tengo un problema a la hora de preparar la instalación de un programa que he hecho en visual c# utilizando como base ...
  #1 (permalink)  
Antiguo 12/02/2009, 05:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 29
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Error de canalizaciones con nombre (named pipes) SQL Server

Hola a todos:
Tengo un problema a la hora de preparar la instalación de un programa que he hecho en visual c# utilizando como base de datos SQL Server.

El problema es el siguiente. Resulta que la primera vez que se ejecuta a la aplicación tras la instalación me he creado un formulario para configurarla.

Uno de los procesos que hago es configurar el SQL Server por código. Una de las cosas que tengo que hacer para activar los inicios de sesión con autenticación SQL es modificar el registro de Windows. Los pasos que se hacen desde que se ejecuta la aplicación hasta que se cambia el registro son los siguientes:

1. Se ejecuta la aplicación.
2. Arranco el motor de SQL Server por código para realizar una consulta a la base de datos y comprobar y la base de datos que quiero crear existe o no.
3. Una vez hecha la comprobación anterior detengo, por código, el motor de la base de datos para cambiar la clave del registro de Windows que me activa los inicios de sesión con autenticación SQL.
4. Tras cambiar el registro de Windows vuelvo a arrancar por código el motor de la base de datos.
5. Me creo por código un inicio de sesión para entrar en SQL Sever y aquí es donde viene el problema.

Pues bien, al volver a arrancar el motor tras cambiar el registro e ir a crearme el inicio de sesión me da el siguiente error al ejecutar la línea “miCommand_G.ExecuteNonQuery();”:

error en el nivel de transporte al enviar la solicitud al servidor. (Provider: proveedor de memoria compartida, error: 0 - Se está cerrando la canalización.

A continuación os pongo el código donde creo el inicio de sesión y donde me pega el fallo, por si os sirve de ayuda para darme alguna solución.

string s = "CREATE LOGIN [reformahogar] WITH PASSWORD=N'reformahogar', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[Español], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF ";
s += " ALTER LOGIN [reformahogar] ENABLE";

miCommand_G = new SqlCommand();

try
{
// Abrimos la conexión y ejecutamos el comando
if (miConexionSQL_CrearBD_G.State.Equals(ConnectionSt ate.Closed))
miConexionSQL_CrearBD_G.Open();

miCommand_G.CommandText = s;
miCommand_G.CommandType = CommandType.Text;
miCommand_G.Connection = miConexionSQL_CrearBD_G;
miCommand_G.ExecuteNonQuery(); // Aquí da el error

He estado buscando por internet y no he encontrado nada que me aclare el motivo por el cual se me produce este fallo.

He estado investigando cuando se produce el problema y me he dado cuenta de lo siguiente. Si cuando ejecuto por primera vez la aplicación el motor de la base de datos está previamente detenido, no lo arranco para hacer la comprobación de si existe la base de datos que quiero crear, sino que directamente con el motor parado cambio el registro de Windows, y luego arranco el motor. De esta forma no me da error.

El problema se produce al tener el motor arrancado, parar el motor, luego cambiar el registro y parece que al volverlo a arrancar algo no queda bien y al ejecutar el “ExecuteNonQuery”, me da el citado error.

He de decir que tengo habilitardas en el “surface area” las conexiones por TCP y las canalizaciones por nombre (named pipes).

Le estado dando muchas vueltas y no encuentro una razón concluyente por la cual me esté pasando esto.

Agradecería muchísimo vuestra ayuda.

Muchas gracias.
  #2 (permalink)  
Antiguo 12/02/2009, 12:22
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Error de canalizaciones con nombre (named pipes) SQL Server

Encontré algo que alguien respondió:
Cita:
...ese error hace referencia a que la conexión con SQL Server al que estas
conectado, mediante el puerto TCP, ha interrumpido la conexión y no te envía
información.
Seria mejor que hagas tu pregunta en el foro de .NET
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:44.