Роль в Azure Compute Emulator застряла в цикле между неизвестным и разрушенным состояниями
Веб-роль моей облачной службы Azure отлично работает при развертывании в Azure, но не может запустить ее с помощью эмулятора.
- При запуске роли из Visual Studio (2015) в окне просто отображается "Запуск ролей для приложения в эмуляторе вычислений Microsoft Azure...".
- При запуске с отладчиком
OnStart()
похоже, совсем не пострадали, так что что-то до этого застревает. Роль, кажется, не запускается, потому что пользовательские журналы приложения также не создаются. - Анализ пользовательского интерфейса эмулятора вычислений показывает, что роль постоянно (и очень медленно) циклически переключается между неизвестным и разрушенным состояниями.
- Кажется, что в журналах событий ничего не значится (см. Этот ответ), кроме сообщений о SSL-сертификатах, добавляемых для конечных точек HTTPS (см. Ниже).
Любая идея, где я могу найти подсказки о том, что делает роль застрял?
Окно вывода в VS имеет это как последнее сообщение:
Microsoft Azure Tools: Warning: Attempting to bind SSL Certificate with identity sha1:something for endpoint named HTTPS of role RoleName.
В роли определены некоторые сертификаты SSL, а также HTTP и две конечные точки HTTPS. Однако удаление этих проблем, похоже, не решило проблему, а затем застряло на этом (добавляется автоматически, поскольку доступ по RDP включен):
Microsoft Azure Tools: Warning: Certificate identification setting 'Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption' for role 'RoleName' specified in the service configuration file is not declared in the service definition file in the Certificate or as part of an SSL endpont
(Обратите внимание на опечатку в конце:-).)
Я посмотрел журналы в C:\Users\Me\AppData\Local\dftmp. Папки logs и EmulatorRuntimeLogs пусты, DFAgentLogs\DFAgent.log содержит несколько записей, вот что повторяется:
[2017/01/29, 21: 27: 55.532, ОШИБКА, 00019400]<- RuntimeRole:: CreateRoleProcess (0x00000224DE6EA670) = 0x80070057 [2017/01/29, 21: 27: 55.644, ОШИБКА, 00019400] <- RuntimeRole:: StartRoleProcess (0x00000224DE6EA670) = 0x80070057 [2017/01/29, 21: 27: 55.748, ОШИБКА, 00019400] <- RuntimeRole:: LaunchDevExRoleHost (0x00000224DE6EA670) = 0x80070057 [2017/01/29, 00: 27: 01/29, 38: 21: 01/29, 38: 21: 01, 29: 38 ] <- RuntimeRole:: StartUnsafe (0x00000224DE6EA670) = 0x80070057 [2017/01/29, 21: 27: 55.922, ОШИБКА, 00019400] <- RuntimeRole:: Start (0x00000224DE6EA670) = 0x80070057 [2017/01/29, 21:27: 56.021, ОШИБКА, 00019400] <- RuntimeBaseContainer:: StartRole_Unsafe (0x00000224DE681BE0) = 0x80070057 [2017/01/29, 21: 27: 56.055, ОШИБКА, 00019400] <- RuntimeBaseContainer:: StartRole/0 0 000 0 800 000 0) 0 0 000 000 / 29, 21: 27: 56.079, ОШИБКА, 00019400] <- RuntimeStartRole = 0x80070057 [2017/01/29, 21: 27: 56.110, INFO, 00019400] Развертывание StartRoleResult29 (73).RoleName_IN_0, 80070057 [2017/01/29, 21: 27: 56.110, INFO, 00019400] Получил уведомление [2017/01 / 29, 21: 27: 56.110, INFO, 00019400] DestroyRoleConfigResources: RoleName_IN_0: 0: cb0b9125-93b1-43e7-9780-f5c6a15f435a [2017/01/29, 21: 27: 56.110, INFO, 00019400] Got Notify / 29, 21: 27: 56.110, INFO, 00019400] StartRoleWorker вернул 0x80070057 [2017/01/29, 21: 27: 56.114, INFO, 00013244] Вызывается GetState [2017/01/29, 21: 27: 56.114, INFO, 00013244] Есть 3 уведомления. [2017/01/29, 21: 27: 56.114, INFO, 00013244] Уведомления о ролях 0, Экземпляр: RoleName_IN_0: 0: cb0b9125-93b1-43e7-9780-f5c6a15f435a Состояние: 2 [2017/01/29, 21:27: 56.114, INFO, 00013244] Уведомления о ролях 1, экземпляр: RoleName_IN_0: 0: cb0b9125-93b1-43e7-9780-f5c6a15f435a Состояние: 10 [2017/01/29, 21: 27: 56.114, INFO, 00013244] Уведомления о ролях 2, Instance: RoleName_IN_0: 0: cb0b9125-93b1-43e7-9780-f5c6a15f435a Состояние: 11 [2017/01/29, 21: 27: 56.114, INFO, 00013244] 1 событие завершения. [2017/01/29, 21: 27: 56.114, ИНФОРМАЦИЯ, 00013244] CompletionEvent 0, Тип: StartRoleCompleted Id: deploy29 (73).RoleName_IN_0 Статус: 0x2147942487 [2017/01/29, 21: 27: 56.114, INFO, 00013244 ] GetState возвращается. [2017/01/29, 21: 27: 56.115, INFO, 00015700] Вызывается AcknowledgeNotifications [2017/01/29, 21: 27: 56.115, INFO, 00015700] Очистка уведомлений и событий завершения, последняя последовательность = 3317 [2017 / 01/29, 21: 27: 56.115, INFO, 00013244] Вызывается StartRole [2017/01/29, 21: 27: 56.115, INFO, 00013244] StartRole возвращено. [2017/01/29, 21: 27: 56.115, INFO, 00019400] StartRoleWorker, экземпляр = развертывание29 (73).RoleName_IN_0 [2017/01/29, 21: 27: 56.116, WARN, 00019400] Развертывание роли 29 (73). RoleName_IN_0 не найдено. [2017/01/29, 21: 27: 56.116, ОШИБКА, 00019400] <- RuntimeContainer:: FindRoleUnsafe = 0x80070490 [2017/01/29, 21: 27: 56.135, INFO, 00019400] SetupRoleConfigResources: RoleName_IN_0: 0: cb0912 93b1-43e7-9780-f5c6a15f435a [2017/01/29, 21: 27: 56.136, INFO, 00019400] Получил уведомление [2017/01/29, 21: 27: 56.136, INFO, 00019400] Стартовая роль [2017/01 / 29, 21: 27: 56.140, INFO, 00019400] Имя именованного канала во время выполнения сервером = \. \ Pipe \ RdRuntimeServer. [2017/01/29, 21: 27: 56.140, INFO, 00019400] Время ожидания именованного канала сервера выполнения = 30. [2017/01/29, 21: 27: 56.140, ОШИБКА, 00019400] Не удалось создать путь процесса в \ role \ project's \ folder \ csx \ debug \ role \ Lombiq.Hosting.RequestRouter.RouterRole \ base \ x64 \ WaHostBootstrapper.exe "base \ x64 \ WaIISHost.exe.
Однако я понятия не имею, почему процесс не может быть создан (файл существует; хотя в моем имени пользователя есть акцентированный символ и, следовательно, в пути, это не помогло переместить папку в корень диска), и там кажется, никакой другой информации нет нигде. В противном случае эмулятор хранения и вычислений запускается и работает.
Это не помогло:
- Запуск VS от имени администратора.
- Отдельно предварительно запустил Эмулятор вычислений как администратор.
- Проверка того, нужно ли что-то делать с учетной записью пользователя: он также работает на другом компьютере на моем компьютере, который имеет ту же учетную запись пользователя Windows.
- Отключение брандмауэра Windows.
- Обновление Azure SDK с 2.9 до 3.0.
- Обновление роли NuGet (связанной с Azure) до последней версии.
- Ремонт установки ВС.
То же самое решение работает на одном из компьютеров моего коллеги, так что это должно быть проблема с моим компьютером, и этот конкретный.
Я также попробовал это с пустым проектом Cloud Service с пустой ролью ASP.NET, и то же самое происходит.
Похожий вопрос: Azure Emulator, похоже, зависает при запуске веб-роли.
Обновление, ближе:
Я также получаю их в журнале событий в разделе "Журналы Windows / Система":
Параметры разрешений для конкретного приложения не предоставляют разрешения локальной активации для приложения COM-сервера с CLSID {6B3B8D23-FA8D-40B9-8DBD-B950333E2C52} и APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} пользователю AUTHOR \ NT. SERVID SID (S-1-5-19) с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения. Недоступный SID (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Настройки разрешений по умолчанию для компьютера не предоставляют разрешения локальной активации для приложения COM-сервера с CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} и APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} пользователю NT AUTHORITY\LOCAL SERVID SID (S-1-5-19) с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения. Недоступный SID (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Эта проблема описана и решена здесь: https://sajiviswam.wordpress.com/2011/04/15/the-machine-default-permission-settings-do-not-grant-local-activation-permission-for-the-com-server-application-with-clsid-000c101c-0000-0000-c000-000000000046-sharepoint-2010/ В моем случае затронутыми службами являются ShellServiceHost и Immersive Shell (вопреки тому, что говорится в блоге, мне пришлось искать Записи CLSID в реестре в разделе HKCR\CLSID. Я перезагрузил компьютер после установки разрешений для записей реестра, но настройки безопасности двух компонентов по-прежнему недоступны.
Помимо того, что в блоге под заголовком "Изменить владельца службы компонента и разрешения", я безуспешно пытался решить эту проблему несколькими способами: настроить это для группы Administrator_s_, а затем дать полный контроль (после перезапуска) для администратора (единственное) пользователь; разрешение наследования разрешений; смена владельца на моего (на уровне администратора) пользователя. Я также попытался заменить владельца на Administrator_s_ и решил также заменить все записи разрешений дочерних объектов.
Тем не менее настройки безопасности двух компонентов неактивны.
Обновление 2:
Основываясь на том, что я разработал, чтобы судить по этому вопросу, вот что помогло:
Мне также нужно было установить разрешения для AppID в Regedit (обратите внимание, что в сообщениях об ошибках присутствуют не только CLSID, но и APPID), чтобы иметь полный контроль над ними для группы администраторов. После этого параметры вкладки "Безопасность" больше не были недоступны для затронутых компонентов в службах компонентов.
Таким образом, я мог установить разрешение локальной активации под обоими компонентами для пользователя локальной службы.
Хотя это избавляет от ошибок в журнале событий, запуск эмулятора все еще застрял на том же шаге, однако на этот раз без каких-либо намеков на то, что может быть не так.
Обновление 3:
Переустановка версии Azure SDK до 3.0 не помогла. На моем ноутбуке может запуститься облачная служба, и я догадываюсь, что это потому, что на этой машине установлен только v2.9 из SDK.
Смежный вопрос: рабочая роль Azure застревает в состоянии роли Неизвестно (решение не помогло).
2 ответа
Закомментируйте задачу запуска в файле csdef. Это помогло мне.
Я также обнаружил, что наличие команды в Microsoft.PowerShell_profile в C:\Users\MyUserName\Documents\WindowsPowerShell, которая запрашивала ввод, приводило к зависанию эмулятора, поскольку он использует этот профиль, как и любой другой сеанс PowerShell. Удаление подсказки позволило ему работать должным образом.