У меня есть веб-приложение с двумя базами данных;один для разработчиков, другой для производства.У меня есть служба Windows, которая подключается к БД и загружает данные.В зависимости от того, на какую базу данных я хочу нацелиться, я закомментирую одну из строк подключения в app.config моего сервиса.
Конечно, все отлично работает на моем локальном компьютере разработчика.Я могу переключаться между базами данных, используя app.config, и данные загружаются в соответствующие базы данных.Это вещь красоты.Действительно!
Я установил веб-приложение на двух новых виртуальных серверах.Веб-приложение работает нормально и подключается к той же базе данных.
Я установил службу Windows, используя тот же app.config, что и мой локальный dev-бокс.Я использую службу Windows как тот же пользователь (моя учетная запись Windows).Однако сервис работает только с dev db, а не с производственной db.Позвольте мне повторить, тот же файл конфигурации, но служба может подключаться только к базе данных dev.
Когда я переключаюсь на использование базы данных prod в app.config и перезапускаю службу, в приложении регистрируется следующее исключениежурнал событий.
The underlying provider failed on Open.
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
Я вполне уверен, что это связано с разрешениями, но у меня закончились идеи для устранения этой проблемы.Какие-либо предложения?Как выяснить, какие разрешения необходимы, чтобы служба работала с производственной базой данных?
EDIT # 1 - прямо из app.config производственная база данных называется "Data Source = ABCD-SQL \ prod;"Может ли быть проблема с именем?
Редактировать # 2 - Подтверждено, из нескольких источников, соглашение сервер \ экземпляр является правильным.