2012-02-24 12 views
5

Tengo una aplicación web y estoy tratando de implementarlo en un servidor web utilizando MSDeploy.exe (Web Deploy 2)tema Despliegue de una aplicación web mediante comandos MSDeploy

He intentado 4 escenarios:

  1. a través de VS2010 Publicar método con el siguiente configuración:
    Publicar método: web Implementar
    Servicio Url: https://MyServerName:8172/MsDeploy.axd
    sitio/aplicación: MyWebSiteName
    Permitir que no se confía: comprueba
    Nombre de usuario: usuario
    Contraseña: mypassword
    Este método funciona bien.
    En la máquina MyServerName, tengo el servicio de administración web ejecutándose; Tengo un sitio web MyWebSiteName, una aplicación MyWebAppName y MyUserName es un administrador de IIS para él.

  2. A través de VS2010 Publicar método con el siguiente configuración:
    Publicar Método: Web Implementar
    Servicio Url: https://MyServerName:8172/MsDeploy.axd
    sitio/aplicación: MyWebSiteName/MyWebAppName
    Permitir que no se confía: comprueba
    Nombre de usuario: usuario
    Contraseña: MiContraseña
    Este método funciona bien.

  3. A través de línea de comandos MSDeploy.exe (dentro de un script de PowerShell)
    $ fuente = "contentpath = '...._ PublishedWebsites \ MyWebApp'"
    $ destino = "contentPath = MyWebSiteName, computerName =" https: //fc-wapps-trial:8172/MsDeploy.axd?Site=WebSiteTest',Username=MyUsername,Password=MyPassword,AuthType=basic "
    MSDeploy -verb: sync -source: $ Source -dest: $ Destination -allowUntrusted
    Este método también funciona bien.

  4. A través de línea de comandos MSDeploy.exe (dentro de un script de PowerShell)
    $ Fuente = "contentPath = '...._ PublishedWebsites \ MyWebApp'"
    $ destino = "iisapp = MyWebSiteName/MyWebAppName, computerName =' https: // fc-wapps-trial: 8172/MsDeploy.axd? Site = WebSiteTest/MyWebAppName ', nombre de usuario = MyUsername, Password = MyPassword, AuthType = basic "
    MSDeploy -verb: sync -source: $ Source -dest: $ Destination -allowUntrusted
    Este método no funciona. Estoy teniendo el siguiente error.
    Código de error: ERROR_USER_UNAUTHORIZED
    Más información: Conectado a la computadora de destino ("MyServerName") utilizando el Web Management Service, pero no pudo autorizar. Asegúrese de que está utilizando el nombre de usuario y la contraseña correctos, que el sitio al que se está conectando existe y que las credenciales representan a un usuario que tiene permisos para acceder al sitio.
    Error: El servidor remoto devolvió un error: (401) No autorizado.

que estaba viendo lo que es el comando Actuall MSDeploy que el método 2 usos y tengo algo como:
msdeploy.exe
-fuente: manifiesta =' ... \ MyWebApp.SourceManifest.xml '
-dest: auto, ComputerName =' https: // MyServerName: 8172/MsDeploy.axd? Site = WebSiteTest ', UserName =' MyUsername ', Password =' ​​MyPassword ', IncludeAcls =' False ', AuthType =' Básico '
-verb: sync
-disableLink: AppPoolExtension
-disableLink: ContentExtension
-disableLink: CertificateExtension
-skip: objectname = 'DirPath', rutaAbsoluta = '... \ App_Data $'
-setParam: tipo = 'ProviderPath', el alcance = 'iisapp', partido = '^ .. . \ PackageTmp $', valor = WebSiteTest/WebAppTest
-setParam: tipo = 'ProviderPath', el alcance = 'sETACL', partido = '^ .. \ PackageTmp $', valor = WebSiteTest/WebAppTest
-allowUntrusted
-retryAttempts = 2
Ahora bien, esto no parece ser nada parecido a lo que estoy usando en el método 4. Intenté ejecutarlo sin éxito, pero supongo que no pude volver a crear correctamente todos esos parámetros.

Así que mis preguntas son:
- ¿Qué estoy haciendo mal en el método 4?
- ¿Cómo puedo implementar una aplicación web como una aplicación web en IIS 7 con el comando MSDeploy.exe


Gracias de antemano por su ayuda
Iulian

+0

¿Cómo se logró "... mirando cuál es el comando actual MSDeploy que usa el método 2"? –

+0

Creo que puede encontrar la respuesta [aquí] (http://sedodream.com/2010/11/04/WebDeployHowToSeeTheCommandExecutedInVisualStudioDuringPublish.aspx). Bueno, él dice que MS usa MSDeploy Object Model de forma predeterminada cuando publica, pero puede cambiar eso. –

Respuesta

7

me encontré con el mismo problema que tú. Lo resolví usando solo el nombre del sitio en https://computername:8172/msdeploy.axd?site= {websitenameonly}. A continuación, configure su ruta de aplicación web en el parámetro usando -setParam IIS Web Application Name = {el nombre de su aplicación web aquí} o use un archivo de parámetros. Y todo se desplegó bien.

Parece que el valor de la cadena de consulta del sitio es necesario para autorizar solo la solicitud. No he encontrado ninguna documentación definitiva de MS sobre ningún otro parámetro querystring que pueda resolver esto. Pero en realidad probé 2 casos. 1) Despliegue en un sitio web en IIS 7.5, este parámetro es obligatorio. 2) Implementar en una aplicación web en un sitio web, este parámetro es realmente opcional, pero si desea incluirlo, debe ser un sitio raíz.

Usted realmente respondió su propia pregunta aquí, probablemente no se dio cuenta.

+0

¡Me disculpo por marcarlo como una respuesta válida con tal retraso! –

0

Compruebe su delegación de servicio de gestión (si no lo ha hecho ya). Haga clic en el sitio principal en el Administrador de IIS para mostrar todas las opciones de Web Deploy en el panel central. En la parte inferior (más allá de ASP.NET, IIS, etc.), bajo Administración, debería ver varias opciones, incluida la "Delegación del servicio de administración".

Bajo esta configuración se encuentran todos los contextos del proveedor con los que se puede encontrar y las rutas/tipos contra los que puede usar (y bajo qué nombres de usuario, etc. puede obtenerse granular).

Asegúrese de que el tipo de proveedor con el que intenta comunicarse (iisApp, contentPath, etc.) no solo esté en la lista, sino que tenga la ruta/alcance que necesita y que esté operando bajo permisos que hayan sido eliminados .

Recuerde: no es necesario que use un usuario de administrador si la delegación está configurada correctamente. Y ha ido a los Permisos del Administrador IIS del sitio correspondiente y ha agregado un Usuario Permitido, como Dominio \ Usuario, o incluso un Usuario Administrador de IIS personalizado.

Cuestiones relacionadas