Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 建立与SQL Server的连接时出错_.net_Sql Server_Web Config_Connection String - Fatal编程技术网

.net 建立与SQL Server的连接时出错

.net 建立与SQL Server的连接时出错,.net,sql-server,web-config,connection-string,.net,Sql Server,Web Config,Connection String,如果我在web.config中有这样的连接字符串(添加换行以提高可读性): 从web.config获取连接字符串时会出现相同的错误: SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings ["conn"].ConnectionString; 我得到的错误是“System.ComponentModel.Win32Exception:未找到网络路径” 跟踪中显示: 运行时发生与网络相关或特定于实例的

如果我在web.config中有这样的连接字符串(添加换行以提高可读性):

从web.config获取连接字符串时会出现相同的错误:

SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings
 ["conn"].ConnectionString;
我得到的错误是“System.ComponentModel.Win32Exception:未找到网络路径”

跟踪中显示:

运行时发生与网络相关或特定于实例的错误 正在建立与SQL Server的连接。找不到服务器,或者 无法访问。验证实例名称是否正确,以及 SQL Server配置为允许远程连接。(提供者:已命名) 管道提供程序,错误:40-无法打开到SQL的连接 服务器)]

我需要一些帮助来解决这个问题,几个小时来一直在尝试解决这个问题,任何在线建议都是我应该检查网络设置(不适用,因为它连接到sql server express的本地实例)。服务器名称(在VS Express中使用相同的字符串,但在运行的代码中不使用)

这可能是身份验证问题吗?如果是这样,为什么会出现非信息性错误

谢谢你阅读我的帖子,希望你能在这方面帮助我

更新:

我试过以下几件事:

向组中的每个人授予mdf和ldf文件的完全权限

在web下的项目属性中,我尝试在VS development server和本地IIS web服务器(是IIS Express)下运行该项目


运气不好,将代码复制到使用“ASP.NET empty Web Application”创建的项目时,仍然无法完全连接到它连接的位置。

您已正确转义db文件名,但没有转义数据源,因此它尝试连接到名为“(localdb)11.0”的数据源,该数据源(很可能)不存在

尝试像这样正确地转义它:

SqlConnection cn = new SqlConnection("Data Source=(localdb)\\v11.0;"+
"Initial Catalog=MyDB; Integrated Security=True; "+
"MultipleActiveResultSets=True; AttachDbFilename=D:\\Products.mdf");

只是为了取笑,而不是放(localdb)一个句点。。这样看起来

Data Source=.\v11.0;

如果它能正常工作,我会感到惊讶,但您可以在完整的SQL中这样做。

因为这是一个网站项目,所以您需要指定正确的.net framework版本来构建它。SqlLocalDb需要.NETFramework 4

如果您创建web项目并向其中添加网站源文件,则在.net framework为4+时,该项目将正常工作。打开网站时,默认的目标框架或现有的dll框架可能不同,可能是.net 3.5,这就是为什么会出现此错误。希望这有帮助

您尝试过使用“.\SQLExpress;”而不是使用(localdb)吗在这一页上?它使用默认实例,这可能不是您所需要的

内容如下:

<add 
name="conn" 
connectionString="Provider=SqlClient;Data Source=.\\SQLExpress; Initial 
    Catalog=MyDB; Integrated Security=True; MultipleActiveResultSets=True; 
    AttachDbFilename=D:\Products.mdf" 
providerName="System.Data.SqlClient"/>

检查参考系统的版本。工作的空项目和不工作的项目之间的数据。您可以使用解决方案资源管理器来检查这一点。两个项目是否使用相同的版本


问题与未在.net 4.0版中运行的应用程序有关

根据以下页面:

您需要.net 4.0及更高版本才能使用命名管道:

.NET framework不支持Server=(localdb)语法 4.0.2之前的版本。但是,命名管道连接将适用于 将4.0.2之前的应用程序连接到LocalDB实例

该信息提供命名管道,然后可在连接字符串中使用:

<add name="conn" 
providerName="System.Data.SqlClient" 
connectionString="Server=np:\\.\pipe\LOCALDB#B1704E69\tsql\query"/>

还有。。。这可能与您在IIS中的设置有关


可以将网站的(会话状态)设置为在会话中使用SQL Server。也去那里看看。。。我刚刚遇到这个问题,意识到我们的sqlbox连接已更改,并且忘记在IIS上更新。

在压缩C:\Program Files\Microsoft SQL Server\MSSQLS11.MSSQLSERVER\MSSQL\DATA目录后,出现了此错误。解压缩它修复了错误。

谢谢,这确实使代码在另一个项目中工作。我正在处理的东西没有项目文件,所以我使用file=>openweb站点。在新的web窗体项目中工作的代码不在“打开的web站点”项目中(复制并粘贴工作代码)。此问题仍然存在。当使用“open web site”项目并添加数据连接以使用上面提到的连接字符串测试“sql server express”或从web配置获取数据连接时,我会遇到前面提到的错误。当使用完全相同的连接字符串时,根据异常详细信息创建带有“空asp.net web应用程序”或“asp.net web窗体应用程序”的项目时,它会起作用,您使用的是命名管道协议;你能切换到TCP/IP,看看是否有帮助吗?另请参见,您是否尝试连接到其他SQL Server实例?它连接到SQL Server和网站使用的服务器,但永远不会连接到我的本地SQL Server express。在数据库资源管理器中的VS中,我可以使用相同的连接字符串浏览表,但应用程序不会。将代码和连接字符串复制到anotehr应用程序可以使其正常工作。我只想在本地处理项目但无法使其正常工作时设置一个测试数据库。可能它需要驱动程序引用。sql server的版本是什么?我猜是sql server express 11(连接字符串中的v11.0)在程序文件中我有一个sql server文件夹,其中的子文件夹名为8到11(标准VS 2013 express安装),我确实需要将目标framework更改为3.5,所以尝试了类似以下的连接字符串“数据源=。\SQLEXPRESS;AttachDbFilename=D:\Products.mdf;综合安全=真;;连接超时=30;User Instance=True”,但错误相同。关于使用(localDb)的连接字符串需要.net 4,0,您是对的。由于无法使用.net 4.0构建项目,而服务器使用.net 2.0,我已使用命名管道连接到localdb。谢谢Daniele,尝试了该操作,但出现了相同的错误,它在VS数据库资源管理器中停止工作。事实上,它在VS数据库资源管理器中工作,并且连接字符串取自web配置,这告诉我e连接字符串应该正确,但可能不起作用
<add 
name="conn" 
connectionString="Provider=SqlClient;Data Source=.\\SQLExpress; Initial 
    Catalog=MyDB; Integrated Security=True; MultipleActiveResultSets=True; 
    AttachDbFilename=D:\Products.mdf" 
providerName="System.Data.SqlClient"/>
SqlLocalDB.exe create MyInstance
SqlLocalDB.exe start MyInstance
SqlLocalDB.exe info MyInstance
<add name="conn" 
providerName="System.Data.SqlClient" 
connectionString="Server=np:\\.\pipe\LOCALDB#B1704E69\tsql\query"/>