Azure Cloud Deploy продолжает переработку

Я получаю следующую ошибку:

Переработка (Ожидание запуска роли... Сайты развертываются. [2012-12-17T05:30:10Z])

Запуск Один или несколько экземпляров роли неработоспособны. 1 экземпляр: 1 нездоровый

на самом деле я пытался преобразовать свое веб-приложение в облачное приложение.

вот что я сделал:

я добавил облачный проект в свои решения, я добавил webrole, который связан с моим веб-приложением, я создал базу данных sql azure и скопировал всю свою структуру, а также данные в базу данных, я вставил строку подключения в свой webconfig и попытался запустить его при эмуляции это работало нормально, затем попытались развернуть его, создав облачную службу, запустив сборщик для создания пакетов и загрузив пакеты в «промежуточном» режиме. вот где я получил ошибки.

я попытался создать пустое облачное приложение, добавить веб-роль по умолчанию и загрузить его в облако, это сработало нормально. поэтому я подумал, может быть, у меня что-то не так в настройках моей веброле. Я проверил разницу между обоими и заметил, что в обоих решениях диагностика была включена, но учетная запись хранения в моем собственном решении была пустой, поэтому я вставил здесь «UseDevelopmentStorage=true». это ничего не изменило т. Я также увидел разницу в "packages.config"

Роль по умолчанию имела:

<package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net40" />
  <package id="System.Web.Providers" version="1.1" targetFramework="net40" />
  <package id="System.Web.Providers.Core" version="1.0" targetFramework="net40" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net40" />

у моего было:

    <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net35" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net35" />

я пытался изменить это и загрузить, ничего не сделал

Я не использую рабочую роль, у меня есть только 1 работающий экземпляр (такой же, как по умолчанию)

мое приложение использует некоторую аутентификацию в global.asax, где оно пытается прочитать из User.Identity.Name и сравнить с пользователем в базе данных (этот пользователь вставлен в sql azure db). Сначала я подумал, что это может быть причиной проблемы, но даже если я закомментирую этот код, приложение не будет работать в облаке.

Размер виртуальной машины небольшой, уровень доверия = полное доверие

Я также видел некоторые различия в настройках, где у меня были параметры удаленного доступа. Я попытался удалить все это, чтобы исключить проблемы

я читал что-то о ссылках настроек на «копировать локальную истину», но я не уверен, что это будет иметь какое-то значение.

Любые идеи, потому что я действительно не знаю, что делать больше

РЕДАКТИРОВАТЬ:

Я изменил все ссылки на «copy local is true» и отключил диагностику, чтобы убедиться, что с этим все в порядке.

но теперь я получаю ошибку:

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Забавно то, что в моем веб-конфиге это уже установлено... И я могу найти только 1 веб-конфиг. Я не совсем уверен, что я делаю неправильно


person WtFudgE    schedule 17.12.2012    source источник
comment
Если у вас включена диагностика и UseDevelopmentStorage=true, вы никогда не получите работающую облачную службу. Для этого используйте настоящую строку подключения к хранилищу Azure.   -  person astaykov    schedule 17.12.2012
comment
Не соглашусь, думаю вы получите работающий облачный сервис, просто никакой диагностической информации не получите.   -  person Richard Astbury    schedule 17.12.2012
comment
Я подозреваю, что у вас отсутствует зависимость, вам нужно использовать эти ссылки «копировать локально верно». Если у вас есть Visual Studio Ultimate, вы можете загрузить журналы Intellitrace, в которых может быть дополнительная информация.   -  person Richard Astbury    schedule 17.12.2012
comment
Я соглашусь с вашим несогласием... Но все же я предлагаю использовать реальную строку подключения к хранилищу.   -  person astaykov    schedule 17.12.2012
comment
согласен со всеми! реальную строку подключения к хранилищу, а затем RDP в экземпляр, попробуйте запустить его локально из экземпляра и проверьте журналы событий на наличие ошибок.   -  person viperguynaz    schedule 17.12.2012
comment
я изменил все ссылки, чтобы скопировать local is true (на всякий случай)   -  person WtFudgE    schedule 19.12.2012


Ответы (2)


«Продолжить повторение» почти всегда означает, что при запуске вашего приложения произошло какое-то исключение. Возможно, вы не сможете увидеть какие-либо ошибки или исключения в диагностическом мониторе, поскольку ваше исключение может возникнуть до того, как вы настроили и запустили диагностику.

Я рекомендую включить параметр IntelliTrace при развертывании. Это очень легко сделать, если вы используете Visual Studio. Затем вы можете получить результат IntelliTrace через Visual Studio и выяснить, какое исключение произошло. Я твердо решил, что в лазурной среде пропущены некоторые ссылки, для которых необходимо установить Copy Local = true. Но вам нужна IntelliTrace, чтобы найти их.

person Shaun Xu    schedule 18.12.2012

Проблема заключалась в том, что у меня были некоторые ссылочные проекты, в которых был файл app.config со строкой для локальной базы данных.

person WtFudgE    schedule 04.01.2013