Visual Studio 2012, публикация (веб-развертывание) - первые миграции кода не изменяют web.config

Я впервые использую инструмент публикации из Visual Studio 2012 - локально в качестве теста.

Я следовал этому руководству: http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/deploying-to-production

Файлы сайта могу публиковать нормально, они работают. Но первые миграции кода, похоже, не работают, и база данных не создается. Даже если я создам базу данных вручную, она не изменится (для этого теста это тот же экземпляр SQL Server, что и основной сайт, только с добавлением «stage» в конец имени).

Я также не вижу явной попытки выполнить какие-либо миграции в окне вывода VS - просто создание файла и папки.

Я что-то упускаю?

введите описание изображения здесь

Настройки мастера публикации

Обновить

Согласно этой статье, некоторые ссылки должны быть добавлены в веб-конфигурацию, чтобы включить первую миграцию кода на целевом сервере. Они не добавляются в локальную конфигурацию - и web.config на целевом сервере не существует (я думаю, он скомпилирован для развертывания, поэтому я его не вижу?).

Следует ли сначала добавить это в локальный файл web.config? Это проблема? Если да, то почему мастер публикации не создает его, и что именно мне нужно ввести?

http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k%28WebApplicationProjects.PackagePublishOverview%29;k%28TargetFrameworkMoniker-.NETFramework

введите описание изображения здесь


person niico    schedule 26.05.2013    source источник
comment
Если вы создадите свою БД вручную, у вас будет доступ к ней позже из приложения? Другими словами, действительна ли ваша строка подключения?   -  person Liel    schedule 26.05.2013
comment
проверка «включить первую миграцию кода» ничего не добавляет в web.config - не так ли? Поскольку база данных не создается (нет таблиц и т. Д.) - трудно сказать, но строка подключения работает (она все локальная для тестирования)   -  person niico    schedule 27.05.2013
comment
Я обновил вопрос ...   -  person niico    schedule 27.05.2013
comment
Строка подключения работает для развернутой базы данных из моего приложения, если я обновляю строку подключения в качестве теста. Возможно, это проблема с разрешениями - хотя не совсем уверен, как это проверить или исправить ?!   -  person niico    schedule 27.05.2013
comment
Я попытался поместить это в Layout.cshtml: @ System.Configuration.ConfigurationManager.ConnectionStrings [MyAppEntities]. В исходном приложении он выводит строку подключения на страницу - при развертывании первая страница отображается нормально (подключение к данным не требуется), но она не выводит эту строку и не выводит страницы, требующие подключения к данным.   -  person niico    schedule 27.05.2013
comment
Также нет файла web.config в корне развернутого приложения (может быть, потому что он где-то скомпилирован?) - похоже, он по какой-то причине не может найти строку подключения.   -  person niico    schedule 27.05.2013
comment
У меня была аналогичная проблема при первом развертывании в Azure. Решением было добавить var context = new EFDbContext (); context.Database.CreateIfNotExists (); методу Application_Start () в Global.asax. ymmv.   -  person Joel    schedule 27.05.2013
comment
Спасибо - я сделал это, теперь ошибка, которая возникает только тогда, когда я нажимаю на страницу, подключенную к базе данных - теперь происходит на главной странице (в строке 'createifnotexist'. Я думаю, что это проблема с разрешениями - он не может найти база данных - какие-либо идеи? Это ошибка: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен для разрешения удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 26 - Ошибка при обнаружении сервера / указанного экземпляра)   -  person niico    schedule 27.05.2013
comment
Я сделал это = добавил ваш код. Я не исправил проблему (к сведению)   -  person niico    schedule 27.05.2013


Ответы (1)


Эта проблема исчезла, когда я развернулся на сервере Windows Server 2008, а не на локальном тестовом сайте.

Мне пришлось создать базу данных и дать разрешение соответствующему пользователю IIS, но после этого все заработало.

person niico    schedule 27.05.2013