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 не может быть найдены, но я не уверен, как решить эту проблему, чтобы дать службе разрешения, или где разместить файлы конфигурации, чтобы служба могла получить доступ ко всему.