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




asp.net-mvc windows-server-2003 (9)

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

我试图在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 server服务来解决这个问题。


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


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


我在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日志”下的应用程序。 您还可以选择“系统”日志以查看系统明智的错误。 您可以通过单击右侧的“过滤当前日志”,然后选择“错误复选框”,对当前日志使用过滤器。


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


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


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


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

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





sql-server-2005-express