asp.net - error - iis 7.5 url rewrite
Problemas de aplicaciones web(errores web.config) HTTP 500.19 con IIS7.5 y ASP.NET v2 (16)
Aha! ¡Vencí este problema! Dios mío, era una bestia para alguien como yo con experiencia IIS limitada. Realmente pensé que iba a pasar todo el fin de semana arreglándolo.
Aquí está la solución para cualquier persona que alguna vez presente este malvado problema.
Lo primero que debe tenerse en cuenta: si espera que esta sea su solución, asegúrese de tener el mismo código de error ( 0x8007000d ) y fuente de configuración ( -1: 0:) . Si no, esta no es tu solución.
Lo que debe tenerse en cuenta a continuación: ¡ AJAX no está instalado correctamente en su web.config!
Soluciona eso siguiendo esta guía:
http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx
Luego, instale las extensiones de AJAX 1.0 en su servidor de producción, desde este enlace:
http://www.asp.net/ajax/downloads/archive/
Actualización : Microsoft parece haber eliminado la página anterior :(
¡Eso es!
Esto está volviendo loco a todo el equipo. Debe haber alguna parte simple configurada incorrectamente de IIS o nuestro servidor web, pero cada vez que intentamos ejecutar la aplicación web ASP.NET en IIS 7.5 obtenemos el siguiente error ...
Aquí está el error completo:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration
data for the page is invalid.
`Detailed Error Information`
Module IIS Web Core
Notification Unknown
Handler Not yet determined
Error Code 0x8007000d
Config Error
Config File //?/E:/wwwroot/web.config
Requested URL http://localhost:80/Default.aspx
Physical Path
Logon Method Not yet determined
Logon User Not yet determined
Config Source
-1:
0:
La máquina ejecuta Windows Server 2008 R2 . Estamos desarrollando nuestra aplicación web con Visual Studio 2008 .
De acuerdo con Microsoft, el código 8007000d significa que hay un error de sintaxis en nuestro web.config, excepto que el proyecto se compila y funciona bien localmente. Ver el archivo web.config en XML Notepad tampoco trae ningún error de sintaxis. Supongo que debe ser algún tipo de configuración pobre de mi parte ...
¿Alguien sabe dónde puedo encontrar más información sobre el error? No se muestra nada en EventViewer, ya sea :(
No estoy seguro de qué más sería útil mencionar ...
La asistencia es muy apreciada. ¡Gracias!
ACTUALIZACIONES! - PUBLICADO WEB.CONFIG A CONTINUACIÓN
Ok, ya que publiqué la pregunta original anterior, he rastreado las líneas precisas en el archivo web.config que estaban causando el error.
Aquí están las líneas (aparecen entre las etiquetas <System.webServer>
) ...
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</httpHandlers>
Nota: Si borro las líneas entre los <httpHandlers>
TODAVÍA obtengo el error. Literalmente tengo que eliminar <httpHandlers>
(y las líneas intermedias) para dejar de obtener el error anterior.
Sin embargo, una vez que he hecho esto, recibo un nuevo error de 500.19. Afortunadamente, esta vez, IIS realmente me dice qué parte del web.config está causando un problema ...
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</handlers>
Al mirar estas líneas, queda claro que el problema ha migrado aún más dentro de la misma etiqueta <system.webServer>
a la etiqueta <handlers>
.
El nuevo error también es más explícito y se queja específicamente de que no reconoce el atributo "validar" (como se ve en la tercera línea de arriba). Al eliminar este atributo, se queja de que la misma línea no tiene el atributo de "nombre" requerido. Al agregar este atributo, aparece el error de ASP.NET ...
No se pudo cargar el archivo o ensamblado ''System.web.Extensions, Version = 1.0.61025.0, Culture = neutral, PublicKeyToken = f2cb5667dc123a56'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
Obviamente, creo que estos nuevos errores acaban de surgir al eliminar las etiquetas <httpHandlers>
en primer lugar, obviamente son necesarios para la aplicación, por lo que queda la pregunta: ¿por qué estas etiquetas generarían un error en IIS en el ¿¿¿primer lugar???
¿Debo instalar algo en IIS para que funcione con ellos?
Gracias de nuevo por cualquier ayuda.
WEB.CONFIG
Aquí están los trozos problemáticos de nuestra web . Confi ... ¡Espero que esto ayude a alguien a encontrar nuestro problema!
<system.Web>
<!-- stuff cut out -->
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</modules>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</handlers>
</system.webServer>
Comenta las siguientes líneas en el archivo web.config.
<modules>
<!--<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</handlers>
Esto funcionará
Después de luchar con esto por un día en una máquina nueva, encontré los siguientes enlaces. Me faltaban los módulos de reescritura. Esto solucionó todo.
http://forums.iis.net/t/1176834.aspx
http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
Esto puede o no estar relacionado ... Empecé con el mismo error mencionado anteriormente, comencé a buscar en Google, a hacer cambios, a obtener nuevos errores, al bucle infinito.
El cambio que me generó ese error fue interferir con la Delegación de funciones en el Administrador IIS en la sección Administración del servidor. Lamento no recordar cuál cambié, pero buscar en Google podría ayudar.
Eso me llevó más allá del primer error a una nueva corriente de otros, algunos totalmente absurdos. (Me gustaría obtener un error cuando se ejecuta en un directorio virtual, convirtiéndolo en una aplicación produjo otro error, etec, etc.). Lo que finalmente resolvió esta serie de errores fue: Administrador de IIS, Grupos de aplicaciones, DefaultAppPool, Habilitar aplicaciones de 32 bits = Verdadero
Comencé esta aplicación en un cuadro de Windows XP de 32 bits, y ahora lo estoy ejecutando en un cuadro de 64 bits de Windows 7.
Así que espero que esto ayude a alguien más.
Mi IIS 7.5 no entiende la etiqueta en web.config En VS 2010 también se subraya esa etiqueta. Verifique su archivo de configuración con precisión para encontrar todas las etiquetas subrayadas. Lo puse en el comentario y el error desaparece.
Mismo problema en Server 2016, IIS 10, 500.19 error. Instalé el módulo de redirección y funcionó. No sé por qué esto no estaba incluido por defecto.
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
Para que quede claro, parece que el archivo web.config de IIS 7 funcionará, o está diseñado para funcionar, pero la falta de este módulo proporciona un error realmente extraño e inútil. Google lo lleva a una página de Microsoft que insiste en que su sitio está dañado o su web.config está dañado. Ninguno parece ser el caso.
Esa página inútil está aquí: https://support.microsoft.com/en-us/kb/942055
Otra forma de obtener 500.19 errot sin razón aparente es - directorios perdidos y / o permisos rotos sobre ellos.
En el caso de esta pregunta, creo que la pregunta es acerca de la versión completa de IIS. Asumo esto debido a esta línea:
Config File //?/E:/wwwroot/web.config
El instalador de IIS generalmente crea el wwwroot
para usted y esa es la carpeta raíz predeterminada para todos los sitios web y el punto de montaje para los directorios virtuales. Siempre existe, así que no hay problema, generalmente no te importa mucho eso.
Como los archivos web.config son jerárquicos, puede colocar allí un archivo master web.config y tener algunos ajustes de raíz allí, y todos los sitios lo heredarán. IIS comprueba si ese archivo existe e intenta cargarlo.
Sin embargo, primera parte divertida:
Este directorio existirá si tiene IIS instalado correctamente. Si no existe, obtendrá un error de clase 500. Sin embargo, si juegas con permisos de archivos / directorios, especialmente los "avanzados", puedes negar accidentalmente que la cuenta de servicio de IIS escanee / lea el contenido de este directorio. Si IIS no puede verificar si existe ese wwwroot / web.config, o si existe y IIS no puede abrirlo y leerlo - bam - error de clase 500.
Sin embargo, para IIS completo es muy poco probable. Los desarrolladores / administradores que trabajan con IIS completo generalmente son reacios a jugar con wwwroot
por lo que generalmente se mantiene configurado correctamente.
Sin embargo, en IIS Express ...
Por lo general, IIS Express "simplemente funciona". A menudo, los desarrolladores que utilizan IIS Express a menudo no son conscientes de cuánto se parece internamente al IIS real.
Puede tropezar fácilmente con el hecho de que IIS Express tiene su propio archivo applicationHost.config y VS lo crea y lo gestiona (correctamente, en cierta medida) y ese tipo de revelación que le dice que no es tan simple y puntual. y haga clic en como parece al principio.
Además de ese archivo de configuración, VisualStudio también crea una estructura de directorio vacía en Documents
carpeta Documents
. Si mal no recuerdo, IIS Express considera que estas carpetas son los directorios raíz de su (s) sitio (s) web (es) en el que se montan los directorios virtuales con su código.
Más tarde, al igual que IIS, cuando se inicia IIS Express, espera que estas carpetas existan y comprueba si hay archivos raíz web.config allí. Los archivos del sitio web.config . Casi siempre, estos archivos web.config faltan, y eso está bien porque no los quiere, tiene su ** aplicación web.config ", se colocan con el resto del contenido en un directorio virtual.
Ahora, la segunda parte divertida es: IIS Express espera que los directorios vacíos. Pueden estar vacíos, pero necesitan existir. Si no existen, obtendrá un error de clase 500 que le indicará que no se puede acceder al archivo "web.config" en esa ruta.
La primera vez que me topé con este problema fue cuando estaba limpiando mi disco duro. Encontré esa carpeta ''documentos / sitios web'', llena de basura, reconocí varios proyectos de un año en los que ya no trabajo, todos vacíos, ni un solo archivo, así que lo borré todo. Una semana después, bam, no puedo ejecutar / depurar ninguno de los sitios en los que estaba trabajando en este momento. El error fue 500.19, no se puede leer el archivo de configuración.
Por lo tanto, si utiliza IIS Express y ve un error de 500 clases sobre la lectura de la configuración, verifique cuidadosamente el mensaje de error y lea todas las rutas mencionadas. Si ves algo como:
c:/users/user/documents/visual studio 2013/projects/WebProject1/WebProject1.web/web.config
c:/users/zeshan.munir/documents/visual studio 2015/projects/WebProject1/WebProject1.web/web.config
c:/users/zeshan.munir/documents/visual studio 2017/projects/WebProject1/WebProject1.web/web.config
etc..
Vaya exactamente donde indica el error, asegúrese de que estas carpetas existan, asegúrese de que la cuenta de trabajador de IIS pueda recorrerlas y leerlas, y si nota que algo está mal, tal vez sea eso.
Por cierto. En VisualStudio, en ProjectProperties / Web hay un botón "Crear directorio virtual". Básicamente hace esto mismo, por lo que puede intentarlo primero, pero IIRC también puede borrar / sobrescribir / intercambiar secciones de configuración en el archivo applicationHost.config, así que tenga cuidado con ese botón si tiene alguna configuración personalizada allí.
Para mí, volver a registrar asp.net para iis hizo el truco. Espero que eso ayude a alguien más.
aspnet_regiis.exe -i
Para resumir, basándonos en las respuestas aquí y en otros lugares:
- Compruebe la versión de .NET del grupo de aplicaciones (por ejemplo, 2.0 vs 4.0)
- Verifique que todos los módulos referenciados de IIS estén instalados. En este caso, fueron las extensiones AJAX (probablemente no es el caso actualmente), pero la reescritura de URL es común.
Solo agregué un answear porque pasé horas tratando de resolver los mismos síntomas (pero diferente problema):
Una posible causa es un dll x86 en un grupo de aplicaciones de 64 bits, la solución es habilitar aplicaciones de 32 bits en la configuración del grupo de aplicaciones.
Tenía estos síntomas exactos y mi problema era similar al de Peter. Estaba configurando un proyecto existente en un nuevo servidor. Mi proyecto hizo referencia al módulo de Reescritura de URL de IIS7, pero aún no se había instalado en el nuevo servidor. Instalarlo solucionó mi problema.
Puede usar el instalador de plataforma web de Microsoft para instalarlo. Ejecútelo, seleccione Productos , en el menú de la izquierda seleccione Servidor y busque Reescribir URL en la lista e instálela.
O puedes descargarlo here .
Tuve el mismo problema en Windows 7.
La solución era ir a la configuración básica> conectarse como> usuario específico, e iniciar sesión como usuario, en lugar del "paso" predeterminado.
Esto solucionó el problema para mí.
Tuve el mismo problema que el anterior, el mismo código de error, etc. Configuración de un sitio web local en Windows 8. Después de mucha búsqueda, se descubrió que nos faltaba la reescritura de URL. Después de descargarlo todo estaba bien. :)
Windows 7
Prueba esto,
ejecuta cmd como administrador.
Desconecte todo iis.
start /w pkgmgr.exe /uu:IIS-WebServerRole;WAS-WindowsActivationService
Reinstalar iis y normalmente es su trabajo
Alain
Yo tenía el mismo error. Tenía un sitio de IIS con .NET Framework versión 2.0, pero mi aplicación necesitaba 4.0. Cambié la versión y funcionó.
Publicar solo como un recordatorio si alguien podría tener el mismo problema.
<customErrors>
este error al colocar la etiqueta <customErrors>
dentro de <system.webServer>
lugar de <system.web>
donde pertenece. Había un pequeño garabato debajo de la etiqueta <customErrors>
pero no me di cuenta de inmediato.