Приложение ASP.NET Core и EF останавливается при инициализации контекста базы данных. - PullRequest
0 голосов
/ 31 марта 2019

У меня есть решение .NET C # с

  1. Ссылка на проект ASP.NET Core на
  2. Консольное приложение, содержащее EF.

EFпервый режим базы данных.

Всякий раз, когда я запускаю отладку своего приложения, я могу отслеживать

// ------------------------------------------------------------------------------ // // Этот код был сгенерирован из шаблона.// // Ручные изменения в этом файле могут вызвать непредвиденное поведение в вашем приложении.// Ручные изменения в этом файле будут перезаписаны, если код будет восстановлен.// // ------------------------------------------------------------------------------

namespace ProductApi.Database
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class ProductsEntities1 : DbContext
    {
        public ProductsEntities1()
            : base("name=ProductsEntities1")
        {
        }

the: base ("name = ProductsEntities1") затем останавливается и выдает ошибки:

2019-03-31 12: 21: 20.6795 | 1 | ОШИБКА | Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware | При выполнении запроса возникло необработанное исключение,Newtonsoft.Json.JsonSerializationException: Ошибка при получении значения из 'Result' в 'System.Threading.Tasks.Task`1 [ProductApi.Responses.ProductsResponse]'.

---> System.AggregateException: одна или несколькопроизошли ошибки(Инициализатор типа для «System.Data.Entity.Internal.AppConfig» вызвал исключение.) ---> System.TypeInitializationException: Инициализатор типа для «System.Data.Entity.Internal.AppConfig» вызвал исключение.---> System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Configuration.ConfigurationManager, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51'.Система не может найти указанный файл.в System.Data.Entity.Internal.AppConfig..ctor () в System.Data.Entity.Internal.AppConfig..cctor () --- Конец трассировки стека внутренней исключительной ситуации --- в System.Data.Entity.Internal.LazyInternalConnection..ctor (контекст DbContext, String nameOrConnectionString) в System.Data.Entity.DbContext..ctor (String nameOrConnectionString)
в ProductApi.Database.ProductsEntities1..ctor () в E: \ work \ ProductApi \ ProductApi.Database \ ProductsModel.Context.cs: строка 19 в ProductApi.Database.ProductRepository..ctor () в E: \ work \ ProductApi \ ProductApi.Database \ ProductRepository.cs: строка 14
в ProductApi.Queries.Handlers.ProductsHandler.Handle (Запрос ProductsSuery, CancellationToken CancellationToken) в E: \ work \ ProductApi \ ProductApi \ Queries \ Handlers \ ProductsHandler.cs: строка 16 в MediatR.Pipeline.RequestPostProcessorBehavior 2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate 1 следующая) в MediatR.Pipeline.Request 10Request* 1 следующий) --- Конец внутренней трассировки стека исключений --- в System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target) --- End of inner exception stack trace --- at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultAsync(IActionResult result) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsync[TFilter,TFilterAsync]() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()<br> at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) 2019-03-31 12:21:20.7090|2|WARN|Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware|The response has already started, the error page middleware will not be executed. 2019-03-31 12:21:20.7372|13|ERROR|Microsoft.AspNetCore.Server.Kestrel|Connection id "0HLLLES9AKJ2S", Request id "0HLLLES9AKJ2S:00000002": An unhandled exception was thrown by the application. Newtonsoft.Json.JsonSerializationException: Error getting value from 'Result' on 'System.Threading.Tasks.Task 1 [ProductApi.Responses.ProductsResponse].---> System.AggregateException: произошла одна или несколько ошибок.(Инициализатор типа для «System.Data.Entity.Internal.AppConfig» вызвал исключение.) ---> System.TypeInitializationException: Инициализатор типа для «System.Data.Entity.Internal.AppConfig» вызвал исключение.---> System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Configuration.ConfigurationManager, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51'.Система не может найти указанный файл.в System.Data.Entity.Internal.AppConfig..ctor () в System.Data.Entity.Internal.AppConfig..cctor () --- Конец трассировки стека внутренней исключительной ситуации --- в System.Data.Entity.Internal.LazyInternalConnection..ctor (DbContext context, String nameOrConnectionString) в System.Data.Entity.DbContext..ctor (String nameOrConnectionString)
в ProductApi.Database.ProductsEntities1..ctor () в E: \ work \ ProductApi \ ProductApi.Database \ ProductsModel.Context.cs: строка 19 в ProductApi.Database.ProductRepository..ctor () в E: \ work \ ProductApi \ ProductApi.Database \ ProductRepository.cs: строка 14
в ProductApi.Queries.Handlers.ProductsHandler.Handle (ProductsQuery запрос, ОтменаПроверка отменыТокен) вE: \ работа \ ProductApi \ ProductApi \ Запросы \ Обработчики \ ProductsHandler.cs: линия 16 в MediatR.Pipeline.RequestPostProcessorBehavior 2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate 1 следующий) в MediatR.Pipeline.RequestPreProcessorBehavior 2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate 1 следующее) --- конец трассировки стека внутренних исключений --- System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target) --- End of inner exception stack trace --- at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultAsync(IActionResult result) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsync[TFilter,TFilterAsync]() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()<br> at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication 1 приложение)

Вот строка подключения для моей базы данных:

<add name="ProductsEntities1" connectionString="metadata=res://*/ProductsModel.csdl|res://*/ProductsModel.ssdl|res://*/ProductsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-IAJ5HKV\SQLEXPRESS;initial catalog=Products;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Эта информация об ошибке настолько общая, что событие не знает, с чего начать ее выяснять. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 31 марта 2019

Попробуйте прочитать строку подключения следующим образом вместо использования ConfigurationManager:

var connectionString = Configuration["connectionStrings:ProductsEntities1"];

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

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