visual studio sitio servidor rechazado página puede publicar net iniciar desarrollo configurar configurado conexión conectar con asp aplicacion iis-7.5 mime-types applicationhost

studio - El archivo applicationHost.config de IIS 7.5 no se está actualizando



publicar sitio web en iis (2)

Acabo de probar su código y funciona bien. ¿Es consciente de que este tipo mime se agrega a la colección global de tipos mime y no a un sitio?

También se agrega al final de la lista <staticContent> , esta lista no se vuelve a ordenar cuando haces ServerManager.CommitChanges() .

También en Windows 2008-R2, la ubicación correcta para applicationHost.config está en:

C:/Windows/System32/inetsrv/config

Supongo que estás usando notepad.exe o NotePad2 para abrir este archivo (los editores de 32 bits no pueden abrirlo). Notepad no volverá a cargar el archivo después de un cambio y se debe indicar a NotePad2 que muestre una notificación de cambio de archivo (alt-F5);

También intente agregar algo inusual como .xxx , ejecute su actualización, luego abra el archivo de configuración y realice una búsqueda. Te garantizo que estará allí.

Actualizar:

Además de sus comentarios a continuación, no estoy seguro de cómo puede abrir applicationHost.config usando NotePad ++ o cualquier editor de 32 bits, ciertamente no puedo. ¿Puedes descargar NotePad2 que es un editor de 64 bits?

http://www.flos-freeware.ch/notepad2.html

El candidato de liberación funciona bien.

En una instalación predeterminada de cualquier Windows 2008 o Windows 7 de 64 bits, no debería haber un applicationHost.config en la carpeta C:/Windows/SysWOW64/inetsrv/Config . No estoy seguro de por qué estarías viendo uno allí.

Actualmente estoy jugando con el espacio de nombres de Microsoft.Web.Administration (MWA) para ajustar nuestra aplicación para configurar IIS 7.5 con la nueva API. Comprendí que todos los cambios de nivel de IIS deben expresarse en el siguiente archivo (estoy en Win2K8-R2):

%WINDIR%/System32/inetsrv/config/applicationHost.config

Entonces, cuando uso el objeto ServerManager para confirmar los cambios de configuración, el archivo debería actualizarse en consecuencia.

Después de agregar un nuevo tipo MIME (programático con MWA) no vi ningún cambio en el applicationHost.config file , pero sí veo el nuevo tipo MIME en la ventana del administrador de IIS e IIS reconoce este tipo MIME sin problemas. Incluso después de actualizar el sistema operativo: el archivo de configuración no contiene el tipo MIME recién agregado, pero la ventana del administrador de IIS sí lo muestra.

Debido a que mis grupos de aplicaciones están forzados a 32 bits ( Enable32BitAppOnWin64 = true ), pensé que el archivo de configuración relacionado debería ubicarse en %WINDIR%/SysWOW64/inetsrv/Config , pero (si existe ...) - también lo hace No cambiará después de que el código confirme las actualizaciones.

¿Puede alguien por favor explicar esto? ¿Me estoy perdiendo algo (mirando el archivo incorrecto tal vez?)? ¿Alguien puede arrojar algo de luz sobre el directorio SysWOW64/inetsrv/config ?

Este es mi código para agregar el tipo MIME:

ServerManager manager = new ServerManager(); ConfigurationElementCollection staticContentCollection = manager .GetApplicationHostConfiguration() .GetSection("system.webServer/staticContent") .GetCollection(); //MIMETypes is a string[] array, each object is {FileExt},{MIMETypeStr} foreach (string pair in MIMETypes) { string[] mimeProps = pair.Split('',''); ConfigurationElement mimeTypeEl = staticContentCollection .Where(a => (string)a.Attributes["fileExtension"].Value == mimeProps[0]) .FirstOrDefault(); if (mimeTypeEl != null) { staticContentCollection.Remove(mimeTypeEl); } ConfigurationElement mimeMapElement = staticContentCollection.CreateElement("mimeMap"); mimeMapElement["fileExtension"] = mimeProps[0]; mimeMapElement["mimeType"] = mimeProps[1]; staticContentCollection.Add(mimeMapElement); } manager.CommitChanges(); //At this point all is working but the config file does not reflect the change


Como solución para abrir y editar los archivos de configuración de IIS de 64 bits con su editor favorito de 32 bits que es compatible con 64 bits (es decir, Notepad ++), puede crear un enlace simbólico de directorio de Windows que apunte a C:/Windows/System32/inetsrv/Config . Con este método, está reemplazando el directorio Config 32 bits, ubicado en C:/Windows/SysWOW64/inetsrv/Config para que apunte a la versión de 64 bits. Si, por ejemplo, tiene una aplicación que requiere versiones de 32 y 64 bits, este método no funcionará.

Para obtener más información, le recomiendo que visite este blog de MSDN .