2010-09-29 12 views
5

Tengo un programa que he usado en Windows Server 2003 que configura un sitio en IIS6 que he usado sin ningún problema en el pasado.¿Cómo configuro un sitio en IIS7 en Windows 2008 Server Web SP2 a través de una aplicación de consola?

Estoy tratando de hacer lo mismo con Windows 2008 Server Web SP2 y me aparece un error. Supongo que tiene que ver con la seguridad de la cuenta de usuario. Si esto es correcto, ¿hay alguna manera de evitarlo? Gracias.

System.Runtime.InteropServices.COMException (0x80070005): 
Access is denied. at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 

Editar:

He descubierto que Microsoft proporciona un conjunto, Microsoft.Web.Administration, para hacer mi tarea más fácil con IIS7. Sin embargo, recibo un error cuando ejecuto la aplicación. El error reportado dice:

"El enlace HTTPS especificado no es válido".

No estoy especificando un enlace https, así que no estoy seguro de por qué recibo el mensaje de error. Aquí está el código.

using Microsoft.Web.Administration; 
.... 
using (ServerManager iisManager = new ServerManager()) 
{ 
    iisManager.Sites.Add(site.Name.ToString(), "http", "*:80:" + domain, 
          server.InetPath + site.Name); 
    iisManager.CommitChanges(); 
    Site newSite = iisManager.Sites[site.Name]; 
    newSite.Applications[0].ApplicationPoolName = "TrialUsers"; 
    iisManager.CommitChanges(); 
} 

Además, esta tarea tiene que actualizar varios servidores en una granja de servidores web. ¿Alguien sabe cómo modificar el código para que esto suceda?

+0

Por cierto, la excepción se está produciendo en los primeros CommitChanges llamada. –

+0

No importa, me di cuenta de lo que estaba haciendo mal. En mi variable de dominio que uso antes en el código, tenía el http completo: // que no está permitido. Lo eliminé y funcionó bien. Todavía no sé cómo hacer que esto funcione con varios servidores, aunque si alguien tiene una idea. Gracias. –

+0

Esto no pertenece a ServerFault, es una pregunta sobre la configuración programática de IIS usando la API de MWA. – Kev

Respuesta

0

Para utilizar la API Microsoft.Web.Administration para crear y manipular IIS en un servidor remoto, puede usar el método ServerManager.OpenRemote(string serverName).

Sin embargo, tengo la sensación de que probablemente deba ejecutar esto en el contexto de un usuario de Active Directory con los derechos correctos en el servidor remoto, ya que no hay forma de proporcionar credenciales para el servidor remoto.

+0

Gracias, voy a intentarlo. –

+0

He configurado la suplantación para el programa y he leído que necesito otorgarle permisos a ese usuario al directorio windows \ system32 \ inetsrv \ config. Me estoy conectando como administrador local en esa máquina que tiene acceso de lectura/escritura a esos archivos, pero sigo recibiendo el error de acceso no autorizado. ¿Alguien sabe qué más necesito hacer? Gracias. –

5
iisManager.Sites.Add(site.Name.ToString(), "http:", "*:80:" + domain, 
        server.InetPath + site.Name); 

quitar el dominio, si eres como yo que no agregó el segundo ':' después de que el puerto

+0

claramente esta es la única respuesta correcta –

Cuestiones relacionadas