A transport-level error has occurred when sending the reques

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Microsoft SQL Server
Post Reply
mamcx
Posts: 7
Joined: Mon 12 Mar 2012 19:04

A transport-level error has occurred when sending the reques

Post by mamcx » Wed 06 Jun 2012 20:28

In my test suite I'm recreating a database:

Code: Select all

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'TestBackupDB')
BEGIN 
	ALTER DATABASE [TestBackupDB] 
		SET OFFLINE 
		WITH ROLLBACK IMMEDIATE;


	ALTER DATABASE [TestBackupDB]
		SET ONLINE; 

	DROP DATABASE [TestBackupDB]; 
END 
	
CREATE DATABASE [TestBackupDB];

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'TestBackupDB')
BEGIN 
	--Take database offline ignoring any connection made

	ALTER DATABASE [TestBackupDB] 

		SET OFFLINE 

		WITH ROLLBACK IMMEDIATE; 

	--Bring online before delete 

	ALTER DATABASE [TestBackupDB]

		SET ONLINE; 

	DROP DATABASE [TestBackupDB]; 
END 

CREATE DATABASE [TestBackupDB];

GO

USE [TestBackupDB];

GO

CREATE TABLE People (
  Id int PRIMARY KEY,
  Name varchar(255),
  Address varchar(255),
  Email varchar(255),
  City varchar(50)
)

GO

BEGIN TRANSACTION

INSERT INTO People (Id,Name,Address,Email,City) VALUES ('1','Francis','244-1423 Metus. Rd.','[email protected]','Nenana');
I
COMMIT TRANSACTION

USE [Master];
To make that, I open 2 connections:

This, for recreate the DB:

Code: Select all

       public override void initDb()
        {
            var sqlServer = new SqlServerManager("localhost", "master");

            Assert.IsTrue(sqlServer.connectDB(), "No se conecto a la BD de master");

            //Generar la BD de prueba
            sqlServer.exeSql(File.OpenText("SqlServerDB.sql").ReadToEnd());
     
            sqlServer.disconnectDB();

            sqlServer.ClearPools();
        }
And this, to use it:

Code: Select all

       public override bool connectDB()
        {
            if (this.IsConnect)
            {
                return true;
            }
            this.con = new SqlConnection();

            Logging.Write(String.Format("---Conectado a la db: {0}\\{1}---\n", this.ServerName, this.DataBase));

            string conStr = string.Format("Server={0};Initial Catalog={1};Application Name={2}",this.ServerName,this.DataBase,System.AppDomain.CurrentDomain.FriendlyName);

            if (this.IntegradeAuth)
            {
                conStr = string.Format("{0};Integrated Security=true", conStr);
            }
            else
            {
                conStr = string.Format("{0};User ID={1};Password={2}", this.userName, Utils.decrypt(this.DataBase,this.pwd));
            }
            
            this.con.ConnectionString = conStr;

            this.con.Open();
          
            this.IsConnect = true;

            var sql = this.con.CreateCommand();
            sql.CommandText = @"SELECT SYSTEM_USER AS UserName, 
		@@SERVICENAME As ServiceName,
		@@version AS Version,
        SERVERPROPERTY('Edition') AS Edition,
        SERVERPROPERTY('InstanceName') AS Instance,
        SERVERPROPERTY('IsIntegratedSecurityOnly') AS IsIntegratedSecurityOnly,
        SERVERPROPERTY('IsSingleUser') AS IsSingleUser,
        SERVERPROPERTY('MachineName') AS MachineName,
        SERVERPROPERTY('ProductVersion') AS ProductVersion,
        SERVERPROPERTY('ProductLevel') AS ProductLevel,
        SERVERPROPERTY('ServerName') AS ServerName,
        SERVERPROPERTY('SqlCharSetName') AS SqlCharSetName";

            using (SqlDataReader data = sql.ExecuteReader())
            {
                data.Read();

                this.serverInfo = Enumerable.Range(0, data.FieldCount)
                       .ToDictionary(data.GetName, data.GetValue);
            }

            return this.IsConnect;
        }
However, I'm getting in

Code: Select all

SqlDataReader data = sql.ExecuteReader()
:
Devart.Data.SqlServer.SqlException was unhandled by user code
Message=A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No hay ningún proceso en el otro extremo de la canalización.)
Source=Devart dotConnect for SQL Server
ErrorCode=-2146232060
Class=20
LineNumber=0
Number=233
Server=localhost
State=0
StackTrace:
at Devart.Data.SqlServer.bc.a(CommandBehavior A_0)
at Devart.Data.SqlServer.SqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader()
at Devart.Data.SqlServer.SqlCommand.ExecuteReader()
at BackupDB.SqlServerManager.connectDB() in C:\Proyectos\Server\BackupDB\src\db\impl\SqlServerManager.cs:line 70
at Test.BaseTestDB.makeBackups() in C:\Proyectos\Server\Test\src\db\BaseTestDB.cs:line 57
InnerException:
Despite that I clear the pools as said here:

http://forums.asp.net/p/1433838/3223633.aspx

What I can do?

Pinturiccio
Devart Team
Posts: 2420
Joined: Wed 02 Nov 2011 09:44

Re: A transport-level error has occurred when sending the reques

Post by Pinturiccio » Mon 11 Jun 2012 10:09

We could not reproduce the issue. Colud you, please, create and send us a small test project for reproducing the issue? Please, also check whether your program works with SqlClient provider.

Post Reply