Entity Framework в строке подключения службы Windows

Я использовал библиотеку классов DAL для сайта ASP.NET MVC. Библиотека DAL имеет хранилище для запросов.

Все работало нормально, пока я не попытался использовать библиотеку DAL для службы Windows, служба выдает исключение, когда я достигаю RARepository _repository = new RARepository(); или, более конкретно, когда хранилище попадает в private readonly RAEntities6 entities = new RAEntities6(); линия.

Исключение брошено

System.ArgumentException: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
   at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
   at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
   at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
   at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
   at RA.Models.RAEntities6..ctor() in C:\RADAL\Models\RAEntities.Designer.cs:line 54
   at RA.Repositories.RARepository..ctor() in C:\RADAL\Repositories\RARepository.cs:line 11
   at GDMService.ASU.OnElapsedTime(Object sender, ElapsedEventArgs e) in C:\RAPC7\GDMService\Service1.cs:line 78

Я подумал, что это может быть проблема со строкой соединения, использующей встроенную защиту от службы (которая работает как локальная система), поэтому я попытался сначала изменить строку соединения в app.config, чтобы иметь имя пользователя и пароль для сервера sql. Репозитории все еще работали для Сайта MVC, но не для Сервиса. После этого я попытался изменить строку подключения обратно на встроенную защиту и запустил службу как пользователь, но ошибка была той же.

В исключении строка 78 RARepository _repository = new RARepository();линия 11 private readonly RAEntities6 entities = new RAEntities6(); и строка 54 находится в конструкторе конструктора структуры сущностей

public RAEntities6() : base("name=RAEntities6", "RAEntities6")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}

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

0 ответов

Другие вопросы по тегам