Es un error utilizar una sección registrada como allowDefinition = 'MachineToApplication' más allá del nivel de la aplicación.
La línea superior en todas mis páginas aspx en mi directorio / portal / tiene este mensaje de error, y sé que es común. Busqué en Google este mensaje de error sin fin, y veo muchas publicaciones que me dicen que configure la carpeta / portal / como una aplicación en IIS (que tengo), y más publicaciones que me dicen que he anidado web.configs (pero ninguna de las publicaciones ofrece orientación hacia una solución).
Mi configuración es que tengo un web.config en mi directorio raíz, y luego estoy tratando de hacer un portal de la compañía, en el directorio / portal /. El directorio / portal / tiene su propio (necesario) web.config.
Mi línea 50 de web.config es así:
<customErrors mode="Off" defaultRedirect="customerrorpage.aspx"/>
<anonymousIdentification enabled="true"/>
<authentication mode="Forms"/>
<membership defaultProvider="MyProvider">
Entonces tengo dominio.com/web.config Y dominio.com/portal/web.config ... para que mi página dominio.com/portal/default.aspx no se cargue.
¿Cuál es la solución real a esto? ¿De alguna manera encuentro una manera de fusionar mi raíz web.config con mi / portal / directorio web.config, o estoy fuera de la base aquí?
Cualquier orientación sería muy apreciada!
fuente
Respuestas:
Solo para información de fondo; La información de configuración para un sitio web ASP.NET se define en uno o más archivos Web.config. Los ajustes de configuración se aplican de forma jerárquica. Hay un archivo Web.config "global" que detalla la información de configuración de línea de base para todos los sitios web en el servidor web; Este archivo vive en la
%WINDIR%\Microsoft.Net\Framework\version\CONFIG
carpeta. También puede tener un archivo Web.config en la carpeta raíz de su sitio web. Este archivo Web.config puede anular la configuración definida en el archivo Web.config "global" o agregar otras nuevas. Además, puede tener archivos Web.config en las subcarpetas de su sitio web, que definen nuevas configuraciones o anulan las configuraciones definidas en los archivos Web.config más arriba en la jerarquía.Ciertos elementos de configuración en Web.config no pueden definirse más allá del nivel de aplicación, lo que significa que deben definirse en el archivo Web.config "global" o en el archivo Web.config en la carpeta raíz del sitio web. El
<authentication>
elemento es uno de esos ejemplos. El mensaje de error anterior indica que hay un archivo Web.config en una de las subcarpetas del sitio web que tiene uno de estos elementos de configuración que no se puede definir más allá del nivel de la aplicación.Fuente: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
Has identificado correctamente los 2 enfoques posibles.
1 - Dependiendo del contenido de su segundo web.config y si su configuración lo permitiera (es decir, el mismo método de autenticación), agregue el
<authentication>
configuración y cualquier otro elemento que deba definirse globalmente en la web.config superior2 - Si no puede fusionar el contenido de web.config, entonces debería poder convertir la subcarpeta en una aplicación web en IIS siguiendo los pasos contenidos en este enlace archivado a continuación. El enlace original ya no funciona. (ver archivado ) Espero que esto ayude.
fuente
Por lo que vale, recibí el error: "Es un error usar una sección registrada como allowDefinition = 'MachineToApplication' más allá del nivel de aplicación". y terminó resolviéndolo borrando los directorios \ myWebApp \ obj \ Debug y \ myWebApp \ obj \ Release. También necesitaba establecer una página de inicio predeterminada. Pero, entonces la aplicación comenzó bien. HTH
fuente
Como RY4N dice anteriormente, no es necesariamente el web.config en su carpeta de Proyecto lo que causa el problema. En algunos casos, descubrí que ejecutar una compilación con el perfil de depuración dejará detritos en la carpeta de depuración del proyecto en cuestión. A menudo hay un archivo web.config aquí que conduce al error anterior cuando posteriormente ejecuta una compilación bajo el perfil Release.
La solución que me funciona aquí es eliminar toda la carpeta de depuración que las compilaciones anteriores crearon en el directorio del proyecto.
fuente
También estaba sucediendo en la computadora de mi casa, pero SOLO cuando habilité Build Views en la configuración de lanzamiento Y construí una configuración de lanzamiento. De lo contrario no sucedió.
Aunque la opción Construir vistas es muy buena, terminé desactivándola porque este "error" siempre aparecía y me impedía ejecutar la aplicación.
fuente
Sólo para decir
Si actualiza (por ejemplo, 2008 -> 2010) Un proyecto Visual Studio creará una copia de seguridad (si lo permite) en la solución del proyecto que se agrega a la nueva solución. .
"El archivo Web.config en una de las subcarpetas del sitio web tiene uno de estos elementos de configuración que no se pueden definir más allá del nivel de la aplicación " . @Benni_mac_b
Para solucionarlo : solo elimine la carpeta de copia de seguridad del proyecto y la solución, en este escenario.
fuente
Se me ocurrió otra posible razón por la que esto ocurre.
Tenía una aplicación web anterior construida en 2.0. Lo migré a una solución 4.5.
La aplicación se compiló y depuró muy bien cuando estaba dentro de Visual Studio, pero luego, cuando intenté publicar la aplicación web, este error ocurrió una y otra vez.
Finalmente descubrí que el problema era que Build Action para el archivo web.config era "Embedded Resource" en lugar de "Content". Además, el directorio Copiar a salida se configuró en "Copiar siempre" en lugar de "No copiar". No sé cuándo se realizaron estas configuraciones, pero creo que fue en la versión 2.0 de la aplicación.
La modificación de la configuración del archivo web.config permitió que la acción Publicar en la publicación de Visual Studio 2012 funcionara perfectamente.
fuente
Tuve el mismo problema en un proyecto MVC. El error ocurrió cuando intenté publicar. Resultó que la carpeta obj debe estar vacía (o al menos no contener ninguna
web.config
).Correr
Clean
no me sirvió.Resolví el problema limpiando el
obj
carpeta antes de cualquier compilación (la construcción del proyecto no tomará tanto tiempo de todos modos en mi caso).Descargué el proyecto y agregué lo siguiente al objetivo BeforeBuild
Espero que esto ayude
fuente
"Es un error usar una sección registrada como allowDefinition = 'MachineToApplication' más allá del nivel de la aplicación. Este error puede ser causado por un directorio virtual que no se configura como una aplicación en IIS".
Tuve este problema en VS.NET. Resultó que cuando estaba configurando algunas transformaciones de configuración, había configurado por error la propiedad del archivo Web.config "Copiar siempre". Normalmente configuro mis archivos de transformación en "Copiar siempre" pero dejo el archivo raíz web.config como "No copiar".
Cuidado, porque cambiar las propiedades de web.config también cambia todas las transformaciones anidadas.
Entonces, para arreglar:
1) Cambie web.config a "No copiar"
2) Opcionalmente, si está utilizando transformaciones de configuración, configúrelas en "Copiar siempre"
3) Elimine las carpetas obj y bin de la solución (puede que no estén visibles, seleccione el nodo del proyecto en el Explorador de soluciones y haga clic en el botón de la barra de herramientas "Mostrar todos los archivos".
4) Publicar
Trabajó para mi.
fuente
Experimenté este error solo durante la publicación de la aplicación.
Las propiedades de los archivos web.config (y transformaciones) se establecieron como:
Build Action - None
Copy to Output - Always
.La solución fue cambiar la configuración a:
Build Action - Content
Copy to Output - Do not Copy
fuente
También tuve este problema y surgió después de usar el Asistente de publicación para publicar mi sitio en la web.
Después de mucho investigar, encontré este informe de error en el sitio web de Connect, https://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level
Un representante de MS respondió y además de explicar por qué se trataba de un problema que se produjo al publicar, también incluyó una solución temporal que solucionó el problema para mí.
fuente
Eliminar y crear el directorio virtual nuevamente. Haga clic derecho y convierta el directorio virtual a " Aplicación "
fuente
Haga clic en el
Web.config
archivo del Explorador de soluciones y haga clic con el botón derecho en "Propiedades" y cambie a "Copiar al directorio de salida: no copiar".fuente
Para mí, la razón fue que la carpeta obj estaba debajo de la carpeta del sitio web y aparecieron múltiples web.config después de crear diferentes configuraciones. Resolví el problema en vs2012 moviendo la carpeta obj del sitio web. Para hacer esto, agregué manualmente (en el bloc de notas) $ (SolutionDir) \ Obj \ $ (Configuración) a cada configuración en el archivo de proyecto del sitio web.
fuente
Estaba teniendo el mismo problema cuando publicaba el sitio, si construyo el sitio no tengo problemas, pero al publicar obtendría este terrible error:
Intenté todo lo que se ha indicado aquí en esta publicación sin ningún recurso, lo que funcionó para mí fue crear un nuevo perfil de publicación con exactamente el mismo que he estado usando y que funciona bien, no obtengas el error con el nuevo perfil pero hazlo con el viejo. No estoy seguro de cuál es la diferencia, pero al menos puedo publicar mi proyecto MVC.
Espero que esto ayude a alguien !!
fuente
Aquí hay otra razón: si copia toda su aplicación web en una de sus propias subcarpetas, obtendrá este error. Logré hacer esto en un sitio antiguo al copiar de una máquina a otra; solo me pidieron que mirara el sitio después de un intervalo de aproximadamente 2 años y se produjo el error. Me costó bastante averiguarlo, ya que no tenía múltiples archivos de configuración.
fuente
Tuve este problema y lo resolví limpiando mi solución de ensamblajes antiguos, etc.
from vs: Build> Solución limpia
luego reconstruir.
fuente
Inicio de Windows -> abrir sitios -> IIS -> haga clic con el botón derecho en su sitio -> Administrar sitio web -> Configuración avanzada -> navegar Ruta física -> intente seleccionar una subcarpeta de la que está seleccionando actualmente.
la lógica es que el archivo de configuración web dentro de la subcarpeta está intentando realizar cambios y esto no está permitido, tiene que ser la carpeta seleccionada: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
fuente
También recibo este error cuando intento implementar un sitio web secundario en el sitio web.
La solucion es:
<authentication mode="None" />
SI tengo otro problema, no dudes en hacerme ping, tal vez encuentre ayuda.
fuente
Recibí este error en localhost en Visual Studio 2017, y un simple reinicio de Visual Studio solucionó el problema.
Me doy cuenta de que este problema también puede ser causado por tener más de un web.config; uno dentro de una subcarpeta, por ejemplo. si tiene varios archivos web.config a propósito para otra aplicación: asegúrese de que el directorio no se vea como un directorio virtual.
fuente
Asegúrese de no caer en la trampa de acceder incorrectamente a su sitio local a través de localchost / mysite.test, que debería ser mysite.test que le dará este error.
Cuando accede a su sitio como localhost / dir_name, en este caso, su web.conf cae por debajo del nivel raíz y, por lo tanto, este error.
fuente
Estaba migrando aplicaciones y la aplicación tenía múltiples aplicaciones (múltiples configuraciones web) dentro de ella ... lo que hice fue ir a IIS, luego hacer clic derecho en las subcarpetas y luego "Convertir a aplicación" y funcionó.
fuente
Recibí este error de manera diferente a todos los demás:
Estaba migrando de vs2010 con el proyecto de implementación web a vs2012 y a un nuevo perfil de publicación web.
Creé un nuevo proyecto de publicación web en vs2012 para publicar en el sistema de archivos (tenemos un constructor de instaladores separado, esta es una aplicación comercial) y estaba publicando en una carpeta que estaba dentro del proyecto web existente que está vinculado a IIS.
Esto causó el error durante la publicación que me desconcertó al principio porque estaba publicando en el sistema de archivos, no en IIS (pensé).
La solución fue cambiar la publicación a la carpeta fuera del proyecto web.
fuente
Estuvo bien,
localhost
pero cuando publiqué un lanzamiento en el servidor, comencé el mismo error para algunas páginas. Luego limpié la solución y la reconstruí y publiqué, las cosas se arreglaron.fuente
A veces, la respuesta simple es la mejor. Tenía dos archivos web.config en mi proyecto. El del nivel principal es donde necesitaba hacer el cambio para lidiar con el tiempo de espera de mi sesión (que desencadenó este problema). Tenía un archivo de configuración separado en mi directorio Razor Views, que tenía configuraciones para Razor y sus vistas. Estaba agregando una sección allí (¡no a nivel de aplicación!). Sin darme cuenta de que tenía dos archivos web.config separados, probé todo excepto buscar lo obvio.
fuente
mi error fue copiar y pegar accidentalmente un web.config dentro de otra carpeta en el servidor web
fuente
Recibí este error cuando olvidé convertir el proyecto publicado en una aplicación dentro de IIS.
fuente