ЦЕЛЬ:
Служба Windows не удается подключиться к локальному устройству Microsoft
Я пытаюсь подключить «Службу Windows» к LocalDB MS SQL Server. Когда я запускаю свою «службу Windows» через Службы панели управления, она терпит неудачу. Моя же «служба Windows» работает под управлением Visual Studio.
(Моя «служба Windows» использует LocalService в соответствии с окном «Службы панели управления»).
ПОПЫТКИ:
1) завершает работу с LocalService.
Ошибка: «Ошибка входа в систему для пользователя» NT AUTHORITY \ LOCAL SERVICE ».
Моя строка подключения для ошибки: add name = "LocalDB" providerName = "System.Data.SqlClient" connectionString = "Источник данных = (LocalDb) \ v11.0; Начальный каталог = MyDatabase; Integrated Security = True "
2) Я добавил логин SQL Server [NT AUTHORITY \ LOCAL SERVICE] on (localDB) \ v11.0 и предоставил db_owner, db_datareader и db_datawriter доступ к MyDatabase через SSMS. (Это автоматически создает пользователя базы данных в папке Security \ Users \ в MyDatabase). Я все еще получаю ошибку.
3) Я добавил логин SQL Server для EngineUser on (localDB) \ v11.0 и предоставил db_owner, db_datareader и db_datawriter доступ к MyDatabase через SSMS с паролем того же самого.
Я изменил мою строку подключения моего WindowsService к:
добавить имя = "LocalDB" ProviderName = "System.Data.SqlClient" ConnectionString = "Источник данных = (LocalDB) \ v11.0; Initial Catalog = MyDatabase; Integrated Security = false; User Id = EngineUser; Password = EngineUser; Тайм-аут подключения = 30 "
Ошибка:« Ошибка входа для пользователя «EngineUser».
Я вышел из командной строки под управлением администратора и подтвердил, что пользователь и пароль хороши: sqlcmd -S (localDb) \ v11.0 - U EngineUser -P EngineUser.
Я подключился в SSMS к (localDb) \ v11.0, используя «Аутентификацию SQL Server» с помощью EngineUser и того же пароля. Также подтверждено, что я могу выбрать и обновить в MyDatabase с помощью этого соединения.
4) У меня есть рабочее приложение WPF, которое использует MyDatabase on (localDB) \ v11.0 без проблем, но помните, что это традиционное приложение, а не «служба Windows».
5) Запустив исходный код моей «Службы Windows» в Visual Studio, соединение с БД работает нормально, а строки данных выбраны и вставлены.
6) Я попытался создать общий экземпляр localDB, но не смог полностью его выполнить и не соответствовал бы моим бизнес-требованиям.
7) Убедитесь, что мой (localDb) \ v11.0 имеет «SQL Server и Windows Authentication Mode» (смешанный режим a.k.a.).
) Проверено, что свойства входа в систему EngineUser и [NT AUTHORITY \ LOCAL SERVICE] имеют разрешение на подключение к движку базы данных и вход в систему «включен».9) Используемый профилировщик MS Sql Server, подключающийся к активной трассировке (localDB) \ v11.0, и я вижу активность, выполняющую мой WindowService в Visual Studio, и я НЕ вижу никаких действий, запускающих мой WindowsService на экране «Службы» панели управления , Даже если я включу «все события», чтобы увидеть полный список событий, отметьте все события ошибки и выберите «Аудит входа» и «Аудит входа в систему».
10) Я посмотрел на аналогичных нитей, таких как: The login failed. Login failed for user 'NT AUTHORITY\NETWORK
Возможный дубликат [Использование SQL LocalDB в службе Windows] (http://stackoverflow.com/questions/26597498/using-sql-localdb-in-a-windows-service) и [Как разрешить фоновое обслуживание окна для доступа к базе данных SQL Server?] (http://stackoverflow.com/q/6607742/62576) –
Найденный ответ - см. ниже. –