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

时间:2011-11-10 06:36:39

标签: sql asp.net-mvc windows-server-2003 sql-server-2005-express

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

我收到错误消息:

  

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

     

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

     

来源错误:

     

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

     

堆栈追踪:

     

[SqlException(0x80131904):已成功建立连接   与服务器,但在登录过程中发生错误。   (提供者:共享内存提供者,错误:0 - 没有进程在   管道的另一端。)]
  System.Data.ProviderBase.DbConnectionPool.GetConnection(的DbConnection   拥有对象)+1019
  System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection   拥有连接)+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(方言)   方言,IConnectionHelper connectionHelper)+89
  NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory   sessionFactory)+80
  NHibernate.Impl.SessionFactoryImpl..ctor(配置cfg,IMapping   映射,设置设置,EventListeners监听器)+599
  NHibernate.Cfg.Configuration.BuildSessionFactory()+104
  MyProject.API.Data.SessionManager..cctor()in   C:\开发\代码\ API \数据\ SessionManager.cs:27

23 个答案:

答案 0 :(得分:55)

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

  1. 确保启用共享内存协议
  2. 确保已启用命名管道协议
  3. 确保启用TCP / IP,并在设置
  4. 中超过命名管道

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

答案 1 :(得分:28)

我有同样的错误消息,原来是因为我没有启用混合模式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上的说明进行操作。

答案 2 :(得分:18)

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

答案 3 :(得分:7)

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

答案 4 :(得分:4)

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

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

答案 7 :(得分: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 Server。

答案 8 :(得分:1)

在C#和SQL SERVER中,我们可以通过在连接字符串中添加Integrated Security = true来解决错误。

请找到完整的连接字符串:

constr = @"Data Source=<Data-Source-Server-Name>;Initial Catalog=<DB-Name>;Integrated Security=true";

答案 9 :(得分:1)

“实际”错误在SQL错误日志中:

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

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

答案 10 :(得分:1)

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

答案 11 :(得分:1)

我今天收到了这个错误。在我的例子中,查看SQL服务器上的ERRORLOG文件给了我这个错误:

  

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

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

希望这有助于其他人。

答案 12 :(得分:0)

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

enter image description here

答案 13 :(得分:0)

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

答案 14 :(得分:0)

所有好的和有效的调查过程,尤其是日志,以获取更多信息。

对于那些遇到此问题的人来说,这可能是一个简单的陷阱,当您创建数据库用户时,您可能已实施了密码策略,并让用户在首次登录时更改密码(即,在其密码栏中保留了密码字段周围的复选框默认值)。

在SQL Management Studio中非常容易完成,当然,除非您查看日志,否则当然会导致身份验证问题被掩盖。

答案 15 :(得分:0)

检查您使用SQL Management Studio登录的服务器名称是否与您的连接字符串匹配。

我今天遇到此错误。 原来,我还没有意识到安装SQL Server的计算机上正在运行多个服务器。实际上,我已经将数据库放置在与我认为正在使用的服务器完全不同的服务器上。 (所以我的连接字符串指向没有数据库的服务器)

因此,当.net尝试访问数据库时,它找不到任何内容,只给出了有关管道的误导性错误消息。

我在SQL Management Studio中打开了正确的服务器,将数据库添加到其中,然后一切正常。 (如果下拉列表中没有正确的服务器,请尝试浏览。)

Image showing the connection string matching the correct server name

答案 16 :(得分:0)

在我的情况下,这是连接字符串中数据库名称的拼写错误。

答案 17 :(得分:0)

我知道我可能是唯一会遇到这种问题的人。但是如果您删除了C:/ {user} /目录中的mdf文件,您也会收到此错误。恢复它,你就很黄金

答案 18 :(得分:0)

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

答案 19 :(得分:0)

将此添加到我的连接字符串对我有用:

Trusted_Connection=true

答案 20 :(得分:0)

我在一个代码优先的应用程序中遇到了这个,它希望数据库在那里:

确保数据库已创建/连接字符串中的名称正确。

答案 21 :(得分:0)

我遇到了同样的问题。我尝试了此页面中所有建议的答案,但无济于事!最后,我尝试了以下步骤并且对我有用:

在 SQL Server Management Studio 对象资源管理器中,右键单击服务器,然后单击属性。

  1. 在“安全”页面上的“服务器身份验证”下,选择新的 服务器身份验证模式,然后单击“确定”。
  2. 在 SQL Server Management Studio 对话框中,单击“确定”以 确认需要重新启动 SQL Server。
  3. 在对象资源管理器中,右键单击您的服务器,然后单击重新启动。 如果 SQL Server 代理正在运行,则还必须重新启动它。

然后在您的包管理器控制台中尝试此操作:

.wrapper section:last-child {
    background-color:#000 !important;
} 

.wrapper section.easier_sec:first-child {
    background-color:#000 !important;
} 

section.easier_sec::first-child {
    background-color:#000 !important;
} 

section.easier_sec:first-child {
    background-color:#000 !important;
} 

.easier_sec:first-child {
    background-color:#000 !important;
} 

答案 22 :(得分:0)

就我而言,我的情况有点不同。

1.我的错误:我遗漏了一个“;”在字符串连接中。我知道这是一个新手错误,但我是 C# 和 SQL Server 的新手。我有一天:)

private string connectionString = "Data Source=localhost;Initial Catalog=FundamentalsCSharp" 
       + "User=sa;Password=123456";

2.我的解决方案: 放一个“;”它在短语“FundamentalsCSharp”之后丢失并且有效。

private string connectionString = "Data Source=localhost;Initial Catalog=FundamentalsCSharp;" 
       + "User=sa;Password=123456";

3.注意:为您拥有的初始目录更改“FundamentalsCSharp”。

我希望这对某人有用。谢谢!