【发布时间】:2013-04-02 05:41:21
【问题描述】:
如果我在 web.config 中有这样的连接字符串(添加换行符以提高可读性):
<add
name="conn"
connectionString="Data Source=(localdb)\v11.0; Initial
Catalog=MyDB; Integrated Security=True; MultipleActiveResultSets=True;
AttachDbFilename=D:\Products.mdf"
providerName="System.Data.SqlClient"/>
连接正常,我可以在数据库资源管理器中连接到数据库。
当我在代码中指定连接字符串或使用 ConfigurationManager 获取它时,它不起作用:
SqlCommand command = new SqlCommand();
command.CommandText = "select ...";
command.CommandType = CommandType.Text;
SqlConnection cn = new SqlConnection("Data Source=(localdb)\\v11.0;"+
"Initial Catalog=MyDB; Integrated Security=True; "+
"MultipleActiveResultSets=True; AttachDbFilename=D:\\Products.mdf");
command.Connection = cn;
cn.Open();
DataTable dataTable = new DataTable();
SqlDataReader reader;
reader = command.ExecuteReader();
dataTable.Load(reader);
cn.Close();
从 web.config 获取连接字符串给出了同样的错误:
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings
["conn"].ConnectionString;
我得到的错误是“System.ComponentModel.Win32Exception: The network path was not found”
痕迹中说:
发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:命名 Pipes Provider,错误:40 - 无法打开与 SQL 的连接 服务器)]
我需要一些帮助来解决这个问题,我已经尝试解决了几个小时,任何在线建议是我应该检查网络设置(不适用,因为它连接到本地 sql server express 实例)。服务器名称(相同的字符串在 VS Express 中有效,但在运行代码中无效)。
可能是身份验证问题吗?如果是这样,那么为什么会出现信息不足的错误?
感谢您阅读我的帖子,希望您能帮助我。
更新:
我尝试了以下方法:
授予组每个人对 mdf 和 ldf 文件的完全权限
在 web 下的项目属性中,我尝试在 VS 开发服务器和本地 IIS web 服务器(是 IIS Express)下运行该项目
不走运,将代码复制到使用“ASP.NET 空 Web 应用程序”创建的项目时,仍然无法完美连接到哪里
【问题讨论】:
-
sql server 的版本是什么???
-
我的猜测是程序文件中的 sql server express 11(连接字符串中的 v11.0)我有一个 SQL server 文件夹,其中包含名为 8 到 11 的子文件夹(标准 VS 2013 快速安装)跨度>
标签: .net sql-server web-config connection-string