【问题标题】:Database connection not working - System.Data.SqlClient.SqlException: No process is on the other end of the pipe数据库连接不起作用 - System.Data.SqlClient.SqlException:管道的另一端没有进程
【发布时间】:2015-04-28 07:15:49
【问题描述】:

我正在尝试连接到本地计算机上的数据库,但不断收到错误消息。

这只是一个学校项目,但我似乎无法弄清楚我哪里出错了。我查看了许多其他答案,并尝试了他们的建议,但尚未成功。此时的目标是让我的方法返回一个打开的连接,以便我可以在整个应用程序中使用它。

这是我的连接字符串:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
       <add name="AdventureWorks"
            connectionString="data source=Desktop;initial catalog=AdventureWorksLT2008R2"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

这是我返回打开连接的方法:

using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace Repository.DataAccess
{
   public class DBFactory
   {
       public static IDbConnection GetLocalDbConnection()
       {
            string conn = ConfigurationManager.ConnectionStrings["AdventureWorks"].ToString();
            IDbConnection connection = new SqlConnection(conn);
            connection.Open();

            return connection;
       }
   }
}

最后但并非最不重要的是,这是错误:

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

----> System.ComponentModel.Win32Exception : 管道的另一端没有进程

【问题讨论】:

标签: c# .net connection-string sqlexception


【解决方案1】:

您没有在连接字符串中输入任何凭据,您似乎也没有使用 Windows 身份验证。

要么使用windows认证:

"data source=Desktop;initial catalog=AdventureWorksLT2008R2;Integrated Security=true"

或者指定一个有登录权限的SQL用户:

"data source=Desktop;initial catalog=AdventureWorksLT2008R2;UID=myUser;PWD=myPass"

对于更多的连接字符串,see msdnTrusted_Connection=yes 也可能是必需的。

【讨论】:

  • 我尝试了几种不同的安全类型,但还没有尝试过这一种。我什至输入了用户名和密码。我会尝试这个,当我下班回家时报告。感谢您的帮助。
  • 这是正确的解决方案,非常感谢。我只需要将 Integrated Security=true 添加到我的连接字符串中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 2014-09-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
相关资源
最近更新 更多