Эмулятор вычислений Azure не может подключиться к базе данных после обновления до SQL Server 2008 R2 - PullRequest
1 голос
/ 14 ноября 2011

До прошлой недели я разрабатывал с SQL Server 2008 не-R2, и мое веб-приложение ASP.NET MVC прекрасно работало в эмуляторе вычислений Azure.Он устанавливает соединение с базой данных во время работы.

После переключения на SQL Server 2008 R2 (ранее был удален не-R2-версия) мое веб-приложение больше не может подключаться к базе данных при работе в эмуляторе вычислений.

Интересно: Когда я запускаю приложение вне Azure Compute Emulator, оно работает!

Исключение:

System.Data.Исключение SqlClient.SqlException было обработано кодом пользователя. Сообщение = Невозможно открыть базу данных «X», запрошенную при входе в систему.Ошибка входаОшибка входа пользователя 'NT AUTHORITY \ NETWORK SERVICE'.

Есть идеи?Спасибо!

Ответы [ 2 ]

4 голосов
/ 14 ноября 2011

Я полагаю, ваша строка подключения имеет значение "Integrated Security = True" (или SSPI).Ваш старый сервер был настроен на общий доступ к целевой базе данных для пользователя «Netword Service», а новая установка R2 - нет.

Более того, когда вы запускаете свое приложение в Compute Emulator, оно использует IIS для запускаваша веб-роль, таким образом, удостоверение пула приложений по умолчанию (сетевая служба).Однако при запуске приложения без облачного проекта (эмулятора вычислений) оно использует Casini (сервер веб-разработки AKA), который работает под учетной записью, используемой для Visual Studio (предположите повышенную версию учетной записи пользователя).И поскольку ваша учетная запись пользователя имеет доступ к базе данных, ваше приложение также имеет.

Я настоятельно рекомендую отбрасывать любые строки подключения «интегрированной безопасности» и использовать их против пользователей SQL Server при разработке приложений Windows Azure, которые нацеленыоблачное развертывание.SQL Azure поддерживает только Аутентификацию / авторизацию SQL Server.

0 голосов
/ 16 мая 2012

У меня была такая же проблема, но после удаления "Integrated Security = True" из строки подключения в web.config mvc-app также не смог подключиться, на этот раз из-за ошибки Entity-Framework.

Но к счастью этот обходной путь наконец решил мою проблему!

...