2014-01-25 17 views
10

我無法從c#代碼訪問我的sql服務器連接。我得到這個錯誤:Sql異常:沒有進程在管道的另一端

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身份驗證:集成安全= TRUE;

然後我可以連接到數據庫。

但由於SQL連接的斷開是從一個LocalSystem身份運行,Windows服務中完成的,我不能使用Windows身份驗證。當我這樣做,我得到這個錯誤:

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

它的第一次我創建一個登錄+用戶在SQL Management Studio中,所以我幾乎肯定我做錯了什麼和我的錯。

這是我做過什麼:

1)創建與SQL認證用戶server`s安全文件夾的新登錄:帕斯卡和密碼:測試。

2)又到我的數據庫,並創建與用戶的安全文件夾中的新用戶:帕斯卡和登錄:帕斯卡和架構:DBO

3)我是不是忘了什麼東西?從其他人

解決方案:

1)我自己也嘗試此鏈接,但沒有運氣在suspect_pages表我的SQL選擇是空的。

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

2)我的SQL Server網絡配置啓用的TCP/IP,名稱管道和共享內存設置。

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

數量1至3沒有幫助的。

所有這些都是在我的本地機器上完成的。沒有網絡在這裏。

回答

7

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

如果沒有,嘗試打開SQL Server配置管理器實用程序,並實現共享內存和TCP/IP。服務器和客戶端的共享內存(1)和TCP/IP(2)的順序適用於我。

此外,請確保您正在使用正確的權限創建既是SQL登錄名和數據庫用戶的PASCAL。

看看我的博客文章創建登錄。 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,因爲它是一個不可路由的協議。

如果您仍有問題,請發佈屏幕快照和更多詳細信息。

+0

你如何顯示訂單欄? – Pascal

+0

右鍵單擊,訂單選項顯示在客戶端下。服務器沒有這種東西。我不認爲這很重要。由於只有在登錄服務器時才使用共享內存。 TCP/IP在其他地方使用。 –

+0

我做了所有的提示(請參閱我的初始文章)。然後我運行你的腳本,它的工作。我的Windows服務可以通過瀏覽器連接和獲取數據:)我查看了腳本,但仍然無法通過管理工作室GUI找到以前沒有做過的事情。但現在很高興有這個腳本也感謝這一點。 – Pascal

0

可能是一個不尋常的情況,但我剛剛得到了這個異常,並將其追蹤到連接字符串的初始目錄值中的無效數據庫名稱。

相關問題