.NET Core не может подключиться к базе данных SQL - PullRequest
3 голосов
/ 16 мая 2019

Я создаю новый .net Core Web API с подключением к БД SQL. У меня проблемы с подключением API к моей базе данных. Я попробовал локальную базу данных "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB; Initial Catalog=ib; Integrated Security=SSPI", и удаленную (см. Appsettings.json).

Удаленный: Microsoft SQL Server Express (64-разрядная версия) 11.0.2100.60 Система: Microsoft Windows NT 6.1 (7601)

Можно подключиться к обеим БД с помощью SQL Server Management Studio или Visual Studio SQL Server Object Explorer. У меня также есть рабочее веб-приложение asp.net, где я использую ту же (удаленную) строку подключения.

Но с новым Core Web API я не могу получить соединение. Не с настройками ниже, а также без соединения с Scaffold-DBContext от NuGet

Если вам нужно больше моего Кодекса, вы можете спросить. Большое спасибо за вашу помощь.

 Scaffold-DbContext "Connection String" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Startup.cs

 services.AddDbContext<ibContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

appsettings.json

"ConnectionStrings": {
    "DefaultConnection": "Server=192.168.1.XXX\\SQL2012; Initial Catalog=IBCOREDB_XXX; User ID=XXXX;Password=XXXXX;",
  },

Ошибка ядра (удаленная БД)

Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.SqlClient.dll
'iisexpress.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.4\System.Diagnostics.StackTrace.dll'. Cannot find or open the PDB file.
'iisexpress.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.4\System.Reflection.Metadata.dll'. Cannot find or open the PDB file.
Microsoft.EntityFrameworkCore.Database.Connection:Error: An error occurred using the connection to database 'IBCOREDB_XXX' on server '192.168.1.XXX\SQL2012'.

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at ...

Ошибка: 26 - Ошибка при поиске сервера / указан экземпляр

Ошибка скаффолда (для локальной БД)

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Der angegebene Name der LocalDB-Instanz ist ungültig.
) ---> System.ComponentModel.Win32Exception (0x89C5011B): Unknown error (0x89c5011b)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)

Ошибка: 50 - имя из LocalDB-Instanz недопустимо.

Ошибка скаффолда (Удаленная БД)

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)

Ошибка: 26 - Ошибка при поиске указанного сервера / экземпляра


Edit:

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

Visual Studio SQL Server Object Explorer Advanced Properties

1 Ответ

0 голосов
/ 16 мая 2019

Если вы подключаетесь с компьютера под управлением Windows A к компьютеру под управлением Windows B (сервер с установленным SQL Server) и получаете эту ошибку, вам нужно сделать следующее:

1) Убедитесь, что имя вашего сервера указано правильно, например, нет опечатки в имени.

2) Убедитесь, что имя вашего экземпляра правильное и на вашем целевом компьютере действительно есть такой экземпляр. Если вы не уверены в своем заявлении, попробуйте оба ServerInstance и Server \ Instance в строка подключения

3) Убедитесь, что сервер доступен, например, DNS может быть разрешен правильно, вы можете пропинговать сервер (не всегда верно).

4) Убедитесь, что на сервере запущена служба браузера SQL.

5) Если на сервере включен брандмауэр, необходимо исключить sqlbrowser.exe и / или UDP-порт 1434.

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