Получение ошибки строки подключения SQL при скаффолдинге в ядре EF? - PullRequest
0 голосов
/ 04 июля 2019

Для справочной информации я использую ядро ​​.NET в Arch Linux VScode, а также в SQL Server, работающем в Arch Linux.Когда я подключаюсь к серверу через sqlcmd или через расширение VScode SQL, все работает нормально.

Только при получении лесов я получаю ошибки, поэтому моя строка подключения, вероятно, неверна, и я искал и в основном пробовал все, что у меня было.Любая помощь будет высоко ценится, спасибо заранее.

Когда я запускаю команду

[wasiim@wasiim-PC WebApiServerApp]$ dotnet ef dbcontext scaffold "Server=wasiim-PC;Database=ConkerDb;User Id=sa;Password=********" Microsoft.EntityFrameworkCore.SqlServer -o Models -c ConkerDbContext -v

Я получаю эту ошибку:

System.Data.SqlClient.SqlException (0x80131904): при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик TCP, ошибка: 35 - обнаружена внутренняя исключительная ситуация)

System.Net.Internals.SocketExceptionFactory + ExtendedSocketException (00000005, 6): нет такого устройства или адреса

в системе.Net.Dns.InternalGetHostByName (строка hostName)
в System.Net.Dns.GetHostAddresses (строка hostNameOrAddress)
в System.Data.SqlClient.SNI.SNITCPHandle.Connect (строковое имя_сервера, порт Int32), время TimeSpan
в System.Data.SqlClient.SNI.SNITCPHandle..ctor (String serverName, порт Int32, Int64 timerExpire, callbackObject объекта, логическая параллель)

Я также пытался выполнить

[wasiim@wasiim-PC WebApiServerApp]$ dotnet ef dbcontext scaffold "Server=(wasiim-PC)\MSSQLSERVER;Database=ConkerDb;User Id=sa;Password=********" Microsoft.EntityFrameworkCore.SqlServer -o Models -c ConkerDbContext -v

и я получаю ошибку

System.Data.SqlClient.SqlException (0x80131904): при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 25 - строка подключения недопустима)

в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential credential, объект providerInfo, String newPSecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String маркер доступа)
в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (варианты DbConnectionOptions, DbConnectionPoolKey poolKey, объект poolGroupProviderInfo, DbConnectionPool бассейн, DbConnection owningConnection, DbConnectionOptions userOptions)

журнал ошибок mssql

в журнале ошибок ничего не отображается ни о каких попытках подключения, которые я предпринял, поэтому я предполагаю, что подключение не было установлено, и да, службаБег.Я пинговал wasiim-PC, пинговал localhost, пинговал 127.0.0.1, они все работают просто отлично.

[wasiim@wasiim-PC log]$ sudo cat errorlog
2019-07-04 14:53:24.34 Server      Microsoft SQL Server 2017 (RTM-CU15) (KB4498951) - 14.0.3162.1 (X64) 
        May 15 2019 19:14:30 
        Copyright (C) 2017 Microsoft Corporation
        Developer Edition (64-bit) on Linux (Arch Linux)
2019-07-04 14:53:24.35 Server      UTC adjustment: -5:00
2019-07-04 14:53:24.35 Server      (c) Microsoft Corporation.
2019-07-04 14:53:24.36 Server      All rights reserved.
2019-07-04 14:53:24.36 Server      Server process ID is 32.
2019-07-04 14:53:24.36 Server      Logging SQL Server messages in file '/var/opt/mssql/log/errorlog'.
2019-07-04 14:53:24.37 Server      Registry startup parameters: 
         -d /var/opt/mssql/data/master.mdf
         -l /var/opt/mssql/data/mastlog.ldf
         -e /var/opt/mssql/log/errorlog
2019-07-04 14:53:24.38 Server      SQL Server detected 1 sockets with 4 cores per socket and 8 logical processors per socket, 8 total logical processors; using 8 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2019-07-04 14:53:24.39 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2019-07-04 14:53:24.39 Server      Detected 12632 MB of RAM. This is an informational message; no user action is required.
2019-07-04 14:53:24.40 Server      Using conventional memory in the memory manager.
2019-07-04 14:53:24.41 Server      Large Page Allocated: 32MB 
2019-07-04 14:53:24.92 Server      Buffer pool extension is already disabled. No action is necessary. 
2019-07-04 14:53:25.16 Server      InitializeExternalUserGroupSid failed. Implied authentication will be disabled.
2019-07-04 14:53:25.16 Server      Implied authentication manager initialization failed. Implied authentication will be disabled.
2019-07-04 14:53:25.18 Server      Successfully initialized the TLS configuration. Allowed TLS protocol versions are ['1.0 1.1 1.2']. Allowed TLS ciphers are ['ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA'].
2019-07-04 14:53:25.21 Server      The maximum number of dedicated administrator connections for this instance is '1'
2019-07-04 14:53:25.22 Server      Node configuration: node 0: CPU mask: 0x00000000000000ff:0 Active CPU mask: 0x00000000000000ff:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2019-07-04 14:53:25.22 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2019-07-04 14:53:25.23 Server      In-Memory OLTP initialized on standard machine.
2019-07-04 14:53:25.34 Server      Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.
2019-07-04 14:53:25.35 Server      Query Store settings initialized with enabled = 1, 
2019-07-04 14:53:25.35 spid6s      Starting up database 'master'.
2019-07-04 14:53:25.35 Server      Software Usage Metrics is disabled.
2019-07-04 14:53:25.57 spid6s      Resource governor reconfiguration succeeded.
2019-07-04 14:53:25.57 spid6s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2019-07-04 14:53:25.58 spid6s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2019-07-04 14:53:25.67 spid6s      SQL Trace ID 1 was started by login "sa".
2019-07-04 14:53:25.69 spid6s      Server name is 'wasiim-PC'. This is an informational message only. No user action is required.
2019-07-04 14:53:25.72 spid24s     Always On: The availability replica manager is starting. This is an informational message only. No user action is required.
2019-07-04 14:53:25.72 spid22s     Starting up database 'msdb'.
2019-07-04 14:53:25.72 spid23s     Starting up database 'ConkerDb'.
2019-07-04 14:53:25.72 spid9s      Starting up database 'mssqlsystemresource'.
2019-07-04 14:53:25.73 spid24s     Always On: The availability replica manager is waiting for the instance of SQL Server to allow client connections. This is an informational message only. No user action is required.
2019-07-04 14:53:25.74 spid9s      The resource database build version is 14.00.3162. This is an informational message only. No user action is required.
2019-07-04 14:53:25.78 spid9s      Starting up database 'model'.
2019-07-04 14:53:26.02 spid23s     Parallel redo is started for database 'ConkerDb' with worker pool size [4].
2019-07-04 14:53:26.02 spid19s     A self-generated certificate was successfully loaded for encryption.
2019-07-04 14:53:26.03 spid19s     Server is listening on [ 'any' <ipv6> 1433].
2019-07-04 14:53:26.04 spid19s     Server is listening on [ 'any' <ipv4> 1433].
2019-07-04 14:53:26.04 Server      Server is listening on [ ::1 <ipv6> 1434].
2019-07-04 14:53:26.04 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].
2019-07-04 14:53:26.04 Server      Dedicated admin connection support was established for listening locally on port 1434.
2019-07-04 14:53:26.05 spid19s     SQL Server is now ready for client connections. This is an informational message; no user action is required.
2019-07-04 14:53:26.08 spid9s      Polybase feature disabled.
2019-07-04 14:53:26.09 spid9s      Clearing tempdb database.
2019-07-04 14:53:26.13 spid6s      Parallel redo is shutdown for database 'ConkerDb' with worker pool size [4].
2019-07-04 14:53:26.15 Server      Failed to verify the Authenticode signature of 'C:\binn\secforwarder.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this is not an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
2019-07-04 14:53:26.38 spid9s      Starting up database 'tempdb'.
2019-07-04 14:53:26.63 spid9s      The tempdb database has 1 data file(s).
2019-07-04 14:53:26.64 spid24s     The Service Broker endpoint is in disabled or stopped state.
2019-07-04 14:53:26.65 spid24s     The Database Mirroring endpoint is in disabled or stopped state.
2019-07-04 14:53:26.67 spid24s     Service Broker manager has started.
2019-07-04 14:53:26.70 spid6s      Recovery is complete. This is an informational message only. No user action is required.
2019-07-04 14:58:44.68 spid51      Using 'dbghelp.dll' version '4.0.5'
2019-07-04 15:00:33.43 spid51      Attempting to load library 'xplog70.dll' into memory. This is an informational message only. No user action is required.
2019-07-04 15:00:33.54 spid51      Using 'xplog70.dll' version '2017.140.3162' to execute extended stored procedure 'xp_msver'. This is an informational message only; no user action is required.

Обновление: полная ошибка

Использование проекта '/home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/WebApiServerApp.csproj'.Используя стартовый проект '/home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/WebApiServerApp.csproj'.Написание '/home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/obj/WebApiServerApp.csproj.EntityFrameworkCore.targets' ... dotnet msbuild / target: GetEFProjectMetadata /property:EFМОnologo /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/WebApiServerApp.csproj Написание '/home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/obj/WebAntE.msE.SecE.Set.RuSet.Ru.Set.Ru_Set.RuF_Set.SecGetEFProjectMetadata /property:EFProjectMetadataFile=/tmp/tmpPGLuFn.tmp / verbosity: quiet / nologo /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/WebApiServerApp.sproDotnet build /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/WebApiServerApp.csproj / p: GenerateRuntimeConfigurationFiles = True / подробность: quiet / nologo

Сборка выполнена успешно.0 Предупреждение (я) 0 Ошибка (и)

Прошедшее время 00: 00: 03.18 dotnet exec --depsfile /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/bin/Debug/netcoreapp2.2/WebApiServerApp.deps.json --additionalprobingpath /home/wasiim/.nuget/packages --runtimeconfig /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/bin/Debug/netcoreapp2.2/WebApiServerApp.rimsonconig / wasn / home /.nuget / packages / microsoft.entityframeworkcore.tools.dotnet / 2.0.3 / tools / netcoreapp2.0 / ef.dll dbcontext scaffold "Сервер = (wasiim-PC) \ MSSQLSERVER; База данных = ConkerDb; Идентификатор пользователя = sa; Пароль =come1517 "Microsoft.EntityFrameworkCore.SqlServer -o Models -c ConkerDbContext --assembly /home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/bin/Debug/netcoreapp2.2/WebApiServerAim.dll) - сборкаДокументы / CodingProjects / ProjectConker / WebApiServerApp / bin / Debug / netcoreapp2.2 / WebApiServerApp.dll --project-dir / home / wasiim / Документы / CodingProjects / ProjectConker / WebApiServerApp / --verbose --root-namespace WebApiServerApp Использование сборки 'WebApiServerApp'.Используя загрузочную сборку «WebApiServerApp».Использование базы приложения «/home/wasiim/Documents/CodingProjects/ProjectConker/WebApiServerApp/bin/Debug/netcoreapp2.2».Используя рабочий каталог '/ home / wasiim / Documents / CodingProjects / ProjectConker / WebApiServerApp'.Использование корневого пространства имен «WebApiServerApp».Используя каталог проекта '/ home / wasiim / Documents / CodingProjects / ProjectConker / WebApiServerApp /'.Поиск служб времени разработки для поставщика «Microsoft.EntityFrameworkCore.SqlServer» ... Использование служб времени разработки от поставщика «Microsoft.EntityFrameworkCore.SqlServer».Поиск сервисов времени разработки, на которые ссылается сборка WebApiServerApp.Никаких ссылок на услуги времени разработки не найдено.Поиск реализаций IDesignTimeServices в сборке 'WebApiServerApp' ... Службы времени разработки не найдены.

, как вы можете видеть, до того, как я получу исключения, он говорит, что службы времени разработки не найдены, кажетсяВ связи с этим, я неутомимо искал в Интернете, но не смог это исправить.Надеюсь, кто-нибудь может мне помочь, заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Я запустил это, и на этот раз это сработало.

 dotnet ef dbcontext scaffold "Server=wasiim-PC;Database=ConkerDb;User Id=sa;Password=*********" Microsoft.EntityFrameworkCore.SqlServer -o Models -c ConkerDbContext -v
0 голосов
/ 11 июля 2019

Это то, что я говорил.Я не думаю, что чистые сообщения об ошибках являются точными.Net пытается создать безопасное TCP-соединение, используя IP-адрес (имя) и номер порта.Соединение не завершается, и Net сообщает, что ошибка может быть связана с обслуживанием.Ошибки TCP сбой по четырем причинам 1) Нет маршрута к серверу 2) Порт заблокирован 3) Сервер не прослушивает 4) Сбой TLS / SSL для безопасного соединения.

Из файла журнала (LDF) мы можем сказать SQLСервер не получил соединение, потому что нет записи о входе в систему.Я думаю, что пришло время использовать сниффер, как wireshark of fiddler, чтобы точно определить, где происходит сбой соединения.

Я не знаю, как настроить linux, и подозреваю, что установка неверна.Я не уверен, что использование одного и того же IP-адреса для Linux и Windows будет работать.Отправка сообщения в порядке.Но когда IP-адрес получен без использования другого IP-адреса для Linux и Windows, интерфейс Ethernet не знает, следует ли отправлять и получать сообщения через интерфейс Windows или интерфейс Linux.Похоже, номер порта в этом случае будет использоваться.Порт 1433 для Linux и порт 1434 для Windows.Использование сниффера подтвердит.Поэтому я бы сначала включил работу на стороне сети, используя SSMS, и включил работу SSMS, которая должна решить проблему с сетью.

...