Sql异常:没有进程在管道的另一端

时间:2014-01-25 15:07:49

标签: sql-server authentication windows-services ssms

我无法从c#代码访问我的sql server连接。我收到这个错误:

Sql异常:没有进程在管道的另一端

那是app.config中的连接字符串:

<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=BELLA\SQLEXPRESS;Initial Catalog=TLP;User Id=pascal;Password=test;Pooling=False"/>

当我使用Windows身份验证时:Integrated Security = True;

然后我可以连接到数据库。

但是我不能使用Windows身份验证,因为sql连接的打开是在作为LocalSystem运行的Windows服务中完成的。当我这样做时,我收到此错误:

Login failed. Login failed for user 'NT AUTHORITY\SYSTEM'

我第一次在sql management studio中创建一个登录+用户,所以我几乎可以肯定我做错了什么,这是我的错。

这就是我所做的:

1)使用sql身份验证用户:pascal和密码:test。在服务器的安全性文件夹中创建一个新登录。

2)访问我的数据库并使用user:pascal和login:pascal和schema:dbo

在安全性文件夹中创建一个新用户

3)我忘记了什么吗?

其他人的解决方案:

1)我也尝试了这个链接,但没有运气我在suspect_pages表上的Sql Select是空的。

Error: No process is on the other end of the pipe

2)我的Sql Server网络配置在tcp / ip上有ENABLED,命名管道和共享内存设置。

3)SQL Server 2008 can't login with newly created user

1到3号没有任何帮助。

所有这一切都在我的本地机器上完成。这里没有网络。

2 个答案:

答案 0 :(得分:7)

您是否在SQL配置中启用了共享内存和TCP / IP提供程序?

如果没有,请尝试打开SQL Server配置管理器实用程序并启用共享内存和TCP / IP。适用于我的订单是服务器和客户端的共享内存(1)和TCP / IP(2)。

此外,请确保为PASCAL创建具有正确权限的SQL LOGIN和DATABASE USER。

查看我关于创建登录的博客文章。 http://craftydba.com/?p=656

下面的代码段会被吹走,并使用正确的默认数据库,默认架构和读/写权限重新创建您的登录/用户。

-- Which database to use.
USE [TLP]
GO

-- Delete existing user.
IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'pascal')
DROP USER [pascal]
GO

-- Which database to use.
USE [master]
GO


-- Delete existing login.
IF  EXISTS (SELECT * FROM sys.server_principals WHERE name = N'pascal')
DROP LOGIN [pascal]
GO

-- Add new login.
CREATE LOGIN [pascal] WITH PASSWORD=N'test', DEFAULT_DATABASE=[TLP]
GO

-- Which database to use.
USE [TLP]
GO

-- Add new user.
CREATE USER [pascal] FOR LOGIN [pascal] WITH DEFAULT_SCHEMA=[dbo]
GO

-- Add to database read / write roles
EXEC sp_addrolemember 'db_datareader', 'pascal'
EXEC sp_addrolemember 'db_datawriter', 'pascal'
GO

-- Add to database owner role?  
-- Only give out if application needs a high level of privileges.
-- EXEC sp_addrolemember 'db_owner', 'pascal'
-- GO

服务器级协议。

enter image description here

客户端级协议。

enter image description here

我从不选择NETBIOS,因为它是一种不可路由的协议。

如果您仍有问题,请发布截屏和更多详情。

答案 1 :(得分:0)

可能是一个不常见的情况,但我刚刚得到此异常并将其跟踪到连接字符串的初始目录值中的无效数据库名称。