Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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
C# 无法打开到SQL Server的SQL连接:找不到网络路径_C#_Sql Server_Visual Studio 2017 - Fatal编程技术网

C# 无法打开到SQL Server的SQL连接:找不到网络路径

C# 无法打开到SQL Server的SQL连接:找不到网络路径,c#,sql-server,visual-studio-2017,C#,Sql Server,Visual Studio 2017,我正在开发一个基于.NET的web应用程序,我想连接到SQL Server,这是我使用SQL Server Management Studio 2014创建的。我已经学习了来自和的教程,但没有成功。我收到一个错误“未找到网络路径”。虽然当我在项目属性->设置->连接属性上测试它时,结果是“测试连接成功”。通过SQL Management Studio直接执行查询也很有效 如何解决此问题 Web.config <connectionStrings> <add name

我正在开发一个基于.NET的web应用程序,我想连接到SQL Server,这是我使用SQL Server Management Studio 2014创建的。我已经学习了来自和的教程,但没有成功。我收到一个错误“未找到网络路径”。虽然当我在项目属性->设置->连接属性上测试它时,结果是“测试连接成功”。通过SQL Management Studio直接执行查询也很有效

如何解决此问题

Web.config

  <connectionStrings>
    <add name="SQL_Server"
      connectionString="Data Source=192.168.60.130;Initial Catalog=TestServer;Persist Security Info=True;User ID=name;Password=password"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
堆栈跟踪:

[Win32Exception (0x80004005): The network path was not found]

[SqlException (0x80131904): Network-related or instance-specific error when connecting to SQL Server. The server was not found or can not be accessed. Verify that the instance name is correct and that SQL Server allows remote connections. (provider: Named Pipes Provider, error: 40 - Could not open connection with SQL Server)]
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) +1431
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1085
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +70
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +964
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +109
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1529
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +156
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +258
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +312
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +202
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +413
   System.Data.SqlClient.SqlConnection.Open() +128
   VF.BC._Default.Page_Load(Object sender, EventArgs e) in C:\Users\VM_User\source\repos\SQLProject\Default.aspx.cs:31
   System.Web.UI.Control.OnLoad(EventArgs e) +106
   System.Web.UI.Control.LoadRecursive() +68
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785

导致此错误消息的原因有很多,如下所示

  • 防病毒
  • 防火墙
  • SQL Server网络配置
请检查连接字符串“Data Source=x.x.x.x,1433”中是否有端口

有关详细信息,请查看此视频

请尝试以下操作:-

string connectionString = 
ConfigurationManager.ConnectionStrings["SQL_Server"].ConnectionString.ToString();

SqlConnection con = new SqlConnection(@connectionString);

让我知道这是否有帮助。

因此我终于找到了问题所在。问题实际上是web服务器和SQL server之间的防火墙。我刚刚意识到他们在一个完全不同的IP地址上。我使用了测试,但web服务器无法访问SQL server

我联系了网络管理员,现在问题已经解决了


我应该早点用这种方法测试。谢谢大家的时间和支持。很抱歉造成混淆。

您的代码没有任何错误,应该可以正常工作。请检查您的网络设置和访问权限。我也有同样的问题,在浪费了几个小时之后,我发现这是我的防病毒软件。简而言之,它可以是网络端口或防火墙

尝试使用调试器为连接stringCheck指定一个普通名称,其值为:settings.ConnectionString。这和你在配置文件中写的一样吗?@MarcoSalerno我改了一个较短的名字。还是一样吗error@User2018称之为“examplename”并尝试again@RistoM是的,SQL Server正在运行。我已经更改了SQL Server Configuration Manager中的设置,但仍然出现相同的错误。我没有更改防火墙设置,因为我不确定是否允许更改它们。您的代码没有问题。它应该会起作用。您是否尝试过使用管理研究进行访问?我已经使用SQL management studio进行了尝试,它也可以使用。通过连接属性测试连接也成功。是否尝试使用端口1433?“Data Source=192.168.60.130,1433;我创建了防火墙规则并使用端口1433进行了测试。现在我遇到了一个错误:等待操作超时。我还尝试了“MultiSubnetFailover=True”“.Hi@A to Z-Tak,欢迎来到StackOverflow!这个问题早就有答案了。因此,您可以继续对其他未回答的问题做出贡献:)。谢谢你的回答!是的,防火墙是个问题。我错过了这个答案。谢谢你的评论。
string connectionString = 
ConfigurationManager.ConnectionStrings["SQL_Server"].ConnectionString.ToString();

SqlConnection con = new SqlConnection(@connectionString);