Не удается открыть соединение SQL с SQL Server: сетевой путь не найден - PullRequest
0 голосов
/ 11 сентября 2018

Я занимаюсь разработкой веб-приложения на основе .NET и хочу подключиться к SQL Server, который я создал с помощью SQL Server Management Studio 2014. Я уже следовал инструкциям из ITWorld и CodeProject безуспешно.Я получил ошибку «Сетевой путь не найден» .Хотя, когда я тестирую его в «Свойства проекта» -> «Настройки» -> «Свойства подключения», в результате получается «Проверить подключение успешно».Выполнение запроса напрямую через 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>

Default.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
 {
            string sqlConn = "SQL_Server";
            ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[sqlConn];

            using (SqlConnection conn = new SqlConnection(settings.ConnectionString))
            {
                conn.Open(); //this is line 31 as shown from the Stack Trace error below
                SqlCommand command = new SqlCommand("SELECT * from [SQL_DB].[dbo].[users]", conn);

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {

                        Console.WriteLine(reader);
                    }
                }
                Console.ReadLine();
                Console.Clear();
            }
}

Трассировка стека:

[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

Ответы [ 4 ]

0 голосов
/ 20 сентября 2018

В вашем коде нет замечаний, он должен работать.Пожалуйста, проверьте настройки сети и права доступа.У меня была такая же проблема после того, как я потратил часы на то, что обнаружил, что это мой антивирус.Короче говоря, это может быть сетевой порт или брандмауэр.

0 голосов
/ 11 сентября 2018

Пожалуйста, попробуйте это: -

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

SqlConnection con = new SqlConnection(@connectionString);

Дайте мне знать, если это поможет.

0 голосов
/ 12 сентября 2018

Итак, я наконец нашел проблему.Проблема заключалась в брандмауэре между веб-сервером и SQL-сервером.Я просто понял, что они находятся на совершенно другом IP-адресе.Я протестировал с помощью UDL Tool , и веб-сервер не смог получить доступ к серверу SQL.

Я связался с сетевым администратором, и теперь проблема решена.

У меня должно бытьпроверено таким образом ранее.Спасибо всем здесь за ваше время и поддержку.Извините, что вызвал замешательство.

0 голосов
/ 11 сентября 2018

Существует множество причин появления этого сообщения об ошибке, приведенных ниже.

  • Антивирус
  • Брандмауэр
  • Сетевая конфигурация SQL Server

Проверьте, есть ли у вас порт в строке подключения «Источник данных = x.x.x.x, 1433»

Для получения подробной информации, пожалуйста, проверьте это видео. Устранение ошибок подключения к SQL Server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...