错误消息:(提供程序:共享内存提供程序,错误:0 - 管道的另一端没有进程。)

问题描述 投票:52回答:13

我试图在Windows Server 2003上部署我的网站。我错过了以下错误消息中的内容或错误,我该如何纠正?谢谢

我收到错误消息:

已成功与服务器建立连接,但在登录过程中发生错误。 (提供程序:共享内存提供程序,错误:0 - 管道的另一端没有进程。)描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:已成功与服务器建立连接,但在登录过程中发生错误。 (提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈跟踪:

[SqlException(0x80131904):已成功与服务器建立连接,但在登录过程中发生错误。 (提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)] System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)+1019 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)+108 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+126 System.Data.SqlClient.SqlConnection.Open()+ 125 NHibernate.Connection.DriverConnectionProvider.GetConnection()+ 104 NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare()+15 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(Dialect dialect,IConnectionHelper connectionHelper)+89 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory)+80 NHibernate.Impl.SessionFactoryImpl..ctor(配置cfg,IMapping映射,设置设置,EventListeners侦听器)+599 NHibernate.Cfg.Configuration.BuildSessionFactory()+ 104 C:\ Dev \ Code \ API \ Data \ SessionManager.cs中的MyProject.API.Data.SessionManager..cctor():27

sql asp.net-mvc windows-server-2003 sql-server-2005-express
13个回答
55
投票

通常,要解决此问题,请转到SQL Server配置管理器(SSCM)并执行以下操作:

  1. 确保启用共享内存协议
  2. 确保启用了命名管道协议
  3. 确保启用TCP / IP,并且在设置中位于命名管道之前

也许它可以帮助:Could not open a connection to SQL Server


1
投票

通过查看“C:\ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Log \ ERRORLOG”中的SQL SERVER日志文件,它显示“用户'XXXXX登录失败'。原因:尝试使用SQL身份验证登录服务器配置为仅用于Windows身份验证。[客户端:]“

修复方法是打开“Microsoft SQL Server Management Studio” - >右键单击SQL Server,然后选择“属性” - >安全性 - >将身份验证更改为混合模式。 - >重启SQL服务器。


0
投票

安装MSSQL服务器时启用混合身份验证模式。还为sa用户提供密码。


0
投票

这是旧的,但我在连接对话框中遇到问题,它仍然默认为我删除的数据库。通过运行这些命令,提示中的默认数据库不会更改。我读到了现在找不到的地方,如果你打开“连接到服务器”对话框,然后选择“选项”并通过键入默认数据库选择“连接属性”选项卡(不从下拉列表中选择)然后,数据库将保留输入的新值。这听起来像是一个瑕疵,但万一有人想知道,这应该解决问题,至少在SQL Server 2012


0
投票

嗨只需根据下面的屏幕截图启用服务器身份验证。


0
投票

所有优秀而有效的调查课程,尤其是日志,以获取更多信息。

对于那些遇到这种情况的人来说,这可能是一个简单的问题,当你创建数据库用户时,你可能已经强制执行密码策略并让用户在首次登录时更改密码(即将密码字段周围的复选框保留为默认值) 。

在SQL Management Studio中非常容易完成,除非您查看日志,否则当然可以导致屏蔽掉身份验证问题。


0
投票

“真正的”错误出现在SQL错误日志中:

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\log\ERRORLOG

路径将取决于您的SQL Server版本


30
投票

我有同样的错误消息,原来是因为我没有启用混合模式auth。我只在Windows Auth上。这在vSphere的默认MSSQL部署中很常见,在升级到vSphere 5.1时会出现问题。

要更改为混合模式身份验证,您可以按照http://support.webecs.com/kb/a374/how-do-i-configure-sql-server-express-to-enable-mixed-mode-authentication.aspx上的说明进行操作。


20
投票

我在SQL Server Management Studio中遇到了同样的错误。

我发现要查看更具体的错误,请查看SQL Server创建的日志文件。当我打开日志文件时,我发现了这个错误

无法连接,因为已达到“2”个用户连接的最大数量。系统管理员可以使用sp_configure来增加最大值。连接已关闭

我花了很多时间搞清楚这一点。最后运行以下代码修复了我的问题。

sp_configure 'show advanced options', 1;
go

reconfigure
go

sp_configure 'user connections', 0
go

reconfigure
go

更多关于herehere

编辑

要查看日志在Windows启动按钮上搜索“日志”,请单击“查看事件日志”。从那里转到“Windows日志”下的应用程序。您还可以选择“系统”日志以查看系统明智的错误。您可以通过单击右侧的“过滤当前日志”,然后选择“错误复选框”,对当前日志使用过滤器。


8
投票

另一种可能性。我不得不重新启动sql server服务来解决这个问题。


4
投票

您应该将服务器身份验证模式启用为混合模式,如下所示:在SQL Studio中,选择YourServer - >属性 - >安全性 - >选择SqlServer和窗口身份验证模式。


3
投票

使用Windows凭据转到SQL服务器 - >登录 - >在属性中选择登录 - > - >检查是否启用了登录。如果禁用,启用它,此解决方案适合我。


3
投票

检查您的连接字符串是否添加了"Trusted_Connection=true"


1
投票

我今天得到了这个错误。在我的情况下,查看SQL服务器上的ERRORLOG文件给了我这个错误:

用户''登录失败。原因:无法打开登录属性中指定的数据库''。

这是因为我几天前删除了该用户的“默认数据库”。将默认数据库设置为我的新数据库修复了该问题。

希望这有助于其他人。


1
投票

我忘了添加“Password = xxx;”在我的情况下连接字符串中。

© www.soinside.com 2019 - 2024. All rights reserved.