Проблема развертывания веб-конфигурации Azure ASP.NET MVC Web.Config - PullRequest
2 голосов
/ 05 марта 2012

Мы разрабатываем веб-приложение ASP.NET MVC, которое будет размещено в Windows Azure.Мы развернули приложение несколько раз во время разработки без каких-либо проблем.На самом деле было довольно удивительно, насколько гладко прошел процесс.Затем, когда мы приступили к развертыванию приложения для бета-тестирования, мы продолжали получать ошибки 403 «Отказано в доступе» всякий раз, когда мы пытались перейти к базовому URL сайта.Если после этого мы попытаемся перейти к любому из различных контроллеров и действий сайта, мы получим 404. Ресурсу не удалось найти ошибки.

Другая странная вещь, которую мы заметили, заключается в том, что мы определили перенаправление аутентификации.страница должна быть / Доступ / Вход, а не учетная запись / Вход по умолчанию.На машине разработки все работало нормально, и нас перенаправили в / Access / SignIn, но при публикации в Azure мы увидели, что нас перенаправили в / Account / Login.Это заставило нас подумать, что существует проблема с файлом web.config.

Мы включили удаленный рабочий стол в развертывании Azure и взглянули на файл web.config только для того, чтобы выяснить, что он почти полностью пуст!Единственная установка там была machineKey.Мы вручную скопировали файл web.config с одной из наших машин разработки до экземпляра виртуальной машины Azure, и с этого момента все стало работать.

Что в мире может привести к тому, что развертывание уничтожит файл web.config?И как мы можем предотвратить это, поскольку мы не сможем обновлять файл web.config вручную при каждом развертывании обновления?

1 Ответ

2 голосов
/ 05 марта 2012

Я часто решаю подобные проблемы, просматривая содержимое файла .cspkg. Это позволяет избежать ожидания загрузки и инициализации пакета Azure. Вот шаги для просмотра содержимого .cspkg:

  1. Перейдите в папку /bin//app.publish
  2. Переименуйте файл .cspkg в .cspkg.zip.
  3. Открыть .cspkg.zip. Вы найдете файл .cssx (который на самом деле является zip-файлом) для каждого проекта, на который ссылается проект Azure.
  4. Извлеките файл .cssx, который вы хотите проверить, и переименуйте его в .cssx.zip
  5. Откройте .cssx.zip и осмотрите его. Для WorkerRoles проверьте папку Approot. Для WebRoles проверьте папку sitesroot.
...