Я написал простое тестовое приложение на C # (4.5), которое не делает ничего, кроме подключения к базе данных и отображения сообщения. (В основном только для проверки развертывания и подключения к БД.) На моей локальной рабочей станции все работает нормально. Я установил SQL Express 2012, подключился как текущий пользователь (встроенная защита), никаких проблем.
Однако при развертывании в Windows Server 2008 приложение не может подключиться к базе данных. Он продолжает получать ошибку входа в систему.
На сервере я следовал той же установке для SQL Express 2012. Я вошел в систему как администратор, когда я запускаю консольное приложение. Я даже пытался включить аутентификацию в смешанном режиме, создать пользователя и подключиться как этот пользователь. Я могу подключиться в SQL Management Studio, но приложение всегда получает ошибку входа в систему.
Есть ли какие-то скрытые настройки безопасности в Windows Server 2008, которые мне нужно изменить, чтобы приложение .NET могло подключаться к серверу SQL? Что может вызвать такое поведение, когда я могу войти в базу данных через SSMS, но не через приложение?
Ошибка:
Система.Данные.SqlClient.SqlException (0x80131904): Невозможно открыть базу данных "TestDatabase", запрошенную при входе в систему. Ошибка входа. Ошибка входа для пользователя 'sa'.
Естественно, это версия ошибки, когда я пытался подключиться как sa
как своего рода последнее усилие для тестирования. Та же ошибка происходит для TestUser
(пользователь SQL, которого я создал для этого), а также PERSONALSERVER\Administrator
(текущий вошедший в систему пользователь, запускающий приложение).
Строки подключения, которые я пробовал:
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;Integrated Security=True
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;User Id=TestUser;Password=testpassword