Моя база данных не будет обновлена, что-то не так с моей строкой подключения - PullRequest
0 голосов
/ 09 февраля 2020

Я пытался понять это целую вечность, и я пробовал разные методы, но, похоже, ничего не работает. Я успешно выполнил миграцию, и теперь у меня есть файл миграции для моего проекта. Я пытаюсь обновить свою базу данных, но она терпит неудачу каждый раз, когда я пытаюсь.

Для записи я использую Macbook и использую визуальный код для проекта. Я набрал это в командной строке

dotnet ef database update InitialCreate

Я также попробовал это:

dotnet ef database update -c LoanContext Development

Это то, что показывает в моей командной строке, когда я ввожу выше

Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]  

Entity Framework Core 2.2.6-servicing-10079 initialized 'LoanContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None

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

System. Net .Sockets.SocketException (0x80004005): неопределенная ошибка: 0

в System.Data. SqlClient.SNI.SSRP. ..ctor (идентичность DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential учетных данных, объект providerInfo, String новый_пароль, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String маркер доступа) в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (варианты DbConnectionOptions , DbConnectionPoolKey poolKey, Объект poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnec Тион, DbConnectionOptions userOptions) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnectionPool бассейн, DbConnection owningObject, варианты DbConnectionOptions, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) в System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection ) при System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) в System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, булевой allowCreate, булевой onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & связи) в System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 повтор, DbConnectionOptions userOptions, DbConnectionInternal oldConnecti on, DbConnectionInternal & connection) в System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (DbConnection externalConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 повтор, DbConnectionOptions userOptions 2.Oction_Lone_Player_SignSignSq.Sec.dll) .Sec. (DbContext c, TState s) в Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute [TState, TResult] (состояние TState, Fun c3 operation, Func 3 verifySucceeded) в Microsoft.EntityExteE [TState, TResult] (стратегия IExecutionStrategy, Fun c2 operation, Func 2 verifySucceeded, состояние TState) в Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute [TState, TResult] (стратегия IExecutionStrategy, состояние TState, операция Func`2) в корпорации Майкрософт. EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists (Boolean retryOnNotExists) в Microsoft.EntityFrameworkCore.SqlServer.Storage.Intern al.SqlServerDatabaseCreator.Exists () в Microsoft. EntityFrameworkCore. .OperationExecutor.UpdateDatabase. <> C__DisplayClass0_1. <. Ctor> b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (действие действия)

ClientConnectionId: 00000000-0000-0000-000000000000000000 1025 *

При установлении соединения с SQL Сервером произошла ошибка, связанная с сетью или экземпляром c. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Сервер настроен для разрешения удаленных подключений. (поставщик: поставщик TCP, ошибка: 25 - строка подключения недопустима)

Это мой appsettings.json файл

"Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
},
"AllowedHosts": "*",
"connectionStrings": {
    "DevConnection": "server=(local)\\sqlexpress;Database=LoanDB;Trusted_Connection=True;MultipleActiveResultSets=True"
}

Код в моем файле startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using WebAPI.Models;

namespace WebAPI
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddDbContext<LoanContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DevConnection")));
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc();
        }
    }
}

Я также пытался изменить строку подключения через этот сайт https://www.connectionstrings.com/sql-server-2012/. Ничего не работает, любая помощь по этому вопросу будет оценена.

1 Ответ

1 голос
/ 09 февраля 2020

Включен ли протокол TCP для SQL экземпляра сервера?

Запустите SQL Диспетчер конфигурации сервера и разверните SQL Конфигурация сети сервера и протоколы и проверьте значения. В следующем примере показано, что TCP / IP отключен - если это так, щелкните его правой кнопкой мыши и установите для него значение «Включено» и перезапустите свой экземпляр.

enter image description here

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