visual usar studio servidor scripts remote puede pudo proyecto proceso para pagina modo iniciar hay habilitar está ejecutar destino depurador depuracion debugger configurar configurado conectarse con asociado aplicación .net azure msbuild teamcity azure-cloud-services

.net - usar - remote debugger



Cómo habilitar la depuración remota en el paquete de Azure Cloud Service creado por MSBuild (3)

Hemos podido crear diferentes perfiles para proyectos de Azure por entorno. Luego pasamos en esto:

/p:TargetProfile=Dev

De esta forma se construye con el perfil correcto del Servicio Cloud.

Más allá de eso, sé que terminaría escribiendo solo un C # o incluso un script de Powershell para modificar la configuración después de la compilación.

Estoy construyendo el proyecto ccproj directamente por MSBuild (dentro de TeamCity):

msbuild Project.Azure.ccproj /p:Configuration=Debug /t:Publish

¿Cómo habilitar el depurador remoto? Al igual que en la interfaz de usuario:


No creo que esté disponible como un interruptor de línea de comando. Hice algunas búsquedas y solo encontré tu pregunta aquí.

Si realizo una publicación, habilitando la depuración, en VS 2013 Update 1, crea un archivo temporal .cscfg en el directorio de salida junto con el paquete para cargar (ahora casi el doble). El archivo .cscfg contiene algunas configuraciones adicionales:

<Setting name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector.Enabled" value="true" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector.Version" value="2.3" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.ClientThumbprint" value="XXXX" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.ServerThumbprint" value="XXXX" />

Donde XXXX es una huella digital para un certificado creado por VS e instalado en el almacén de certificados (Mi local) con un nombre descriptivo de RemoteDebuggerZZZZZ.

Un archivo .csdef actualizado contiene la siguiente sección debajo de mi webrole:

<Endpoints> <InputEndpoint name="HttpIn" protocol="http" port="80" localPort="80" /> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="https" localPort="443" /> <InstanceInputEndpoint name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector" localPort="30398" protocol="tcp"> <AllocatePublicPortFrom> <FixedPortRange min="30400" max="30424" /> </AllocatePublicPortFrom> </InstanceInputEndpoint> <InstanceInputEndpoint name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Forwarder" localPort="31398" protocol="tcp"> <AllocatePublicPortFrom> <FixedPortRange min="31400" max="31424" /> </AllocatePublicPortFrom> </InstanceInputEndpoint> </Endpoints>

Y para mi rol de trabajador:

<Endpoints> <InstanceInputEndpoint name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector" localPort="30398" protocol="tcp"> <AllocatePublicPortFrom> <FixedPortRange min="30425" max="30449" /> </AllocatePublicPortFrom> </InstanceInputEndpoint> <InstanceInputEndpoint name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.Forwarder" localPort="31398" protocol="tcp"> <AllocatePublicPortFrom> <FixedPortRange min="31425" max="31449" /> </AllocatePublicPortFrom> </InstanceInputEndpoint> </Endpoints>

También agregó una sección de certificado para mi rol de trabajador:

<Certificates> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.TransportValidation" storeLocation="LocalMachine" storeName="My" /> </Certificates>

.. y agregué el mismo certificado para mi función web:

<Certificates> <Certificate name="https" storeLocation="LocalMachine" storeName="My" /> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteDebugger.TransportValidation" storeLocation="LocalMachine" storeName="My" /> </Certificates>

He agregado manualmente el certificado "https", por lo que estaba allí antes.

Parece que las herramientas en VS crean una gama de puertos para acceder a los puertos 30398 y 31398 utilizados por las herramientas remotas de depuración y agregan el certificado "TransportValidation" a la lista de certificados.

No hay configuraciones adicionales ni importaciones agregadas para ningún tipo de rol.

Todavía tengo que encontrar documentación sobre esto, así que si alguien puede arrojar algo de luz, ¡por favor!

Espero que esto ayude a alguien más a probar esto.


Esto se explica en la documentación de Azure .

Básicamente, debe obtener las herramientas remotas para visual studio 2013 y luego agregar las siguientes propiedades al comando msbuild:

msbuild /TARGET:PUBLISH /PROPERTY:Configuration=Debug;EnableRemoteDebugger=true;VSX64RemoteDebuggerPath="<path-to-remote-tools>";RemoteDebuggerConnectorCertificateThumbprint="<thumbprint-of-ceritificate-that-is-added-to-the-cloud-service>";RemoteDebuggerConnectorVersion="2.4" "<path-to-solution-file>"

donde VSX64RemoteDebuggerPath es una ruta a la carpeta que contiene `msvsmon.exe en las herramientas remotas para Visual Studio