Я борюсь со странной проблемой Azure после отключения подключений к удаленному рабочему столу. Я начал обновление с Azure SDK 1.2 до 1.4 и включил удаленный рабочий стол для упрощения отладки. Однако, как только я закончил обновление и все работало гладко при развертывании, я сделал одно окончательное развертывание с отключенными подключениями к удаленному рабочему столу. К моему удивлению, мои экземпляры веб-ролей застряли в фазе " Ожидание начала роли ". Интересно, что экземпляры рабочих ролей запускались нормально. Примерно через 20 развертываний проблема воспроизводима на 100%:
- удаленный рабочий стол включен: все отлично работает
- удаленный рабочий стол отключен: экземпляры веб-ролей не могут запуститься
Включение Intellitrace , похоже, не помогает, поскольку попытка получить журналы приводит к ошибке " Нет журналов IntelliTrace * ". Как и ожидалось, мой инструмент управления исходным кодом показывает, что единственное различие между включением и отключением удаленного рабочего стола заключается в определении службы и файлах конфигурации ( .cscfg, .csdef ). Повторное создание образа и перезапуск виртуальных машин также, похоже, не приносят пользы.
Пожалуйста, если у кого-то была подобная проблема, помогите отчаявшемуся парню!
ОБНОВЛЕНИЕ: Вот определение сервиса и файлы конфигурации:
ServiceDefinition.csdef
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="####" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="####.Web" enableNativeCodeExecution="true">
<Runtime executionContext="elevated" />
<Startup>
<Task commandLine="StartupTasks\FixACLs.cmd" executionContext="elevated" />
</Startup>
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpIn" endpointName="HttpIn" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
</ConfigurationSettings>
<LocalResources>
<LocalStorage name="Index" cleanOnRoleRecycle="false" sizeInMB="10240" />
</LocalResources>
<Endpoints>
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</Endpoints>
<!-- BEGIN Remote desktop addition -->
<Imports>
<Import moduleName="RemoteAccess" />
</Imports>
<!-- END Remote desktop addition -->
</WebRole>
<WorkerRole name="####.Worker" enableNativeCodeExecution="true">
<Runtime executionContext="elevated" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
</ConfigurationSettings>
<LocalResources>
<LocalStorage name="Index" cleanOnRoleRecycle="true" sizeInMB="10240" />
</LocalResources>
<!-- BEGIN Remote desktop addition -->
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
<!-- END Remote desktop addition -->
</WorkerRole>
</ServiceDefinition>
ServiceConfiguration.cscfg
<?xml version="1.0"?>
<ServiceConfiguration serviceName="####" osFamily="2" osVersion="*" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="####.Web">
<Instances count="2" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value="DefaultEndpointsProtocol=https;AccountName=####;AccountKey=####" />
<!-- BEGIN Remote desktop addition -->
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="####" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="####" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="####" />
<!-- END Remote desktop addition -->
</ConfigurationSettings>
<!-- BEGIN Remote desktop addition -->
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="####" thumbprintAlgorithm="sha1" />
</Certificates>
<!-- END Remote desktop addition -->
</Role>
<Role name="####.Worker">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value="DefaultEndpointsProtocol=https;AccountName=####;AccountKey=####" />
<!-- BEGIN Remote desktop addition -->
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="####" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="####" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="####" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
<!-- END Remote desktop addition -->
</ConfigurationSettings>
<!-- BEGIN Remote desktop addition -->
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="####" thumbprintAlgorithm="sha1" />
</Certificates>
<!-- END Remote desktop addition -->
</Role>
</ServiceConfiguration>