visual-studio-2012 - vista - temas para visual studio code
IIS express: No se puede agregar una entrada de colección duplicada de tipo ''agregar'' con el atributo de clave única ''nombre'' configurado para (11)
En Visual Studio, Solución-> Web.Project-> Properties-> Web, he cambiado mi Url del proyecto de http://localhost:51123/
a http://localhost:51123/NewProjectName
y sigo recibiendo este error:
" No se puede agregar una entrada de colección duplicada de tipo ''agregar'' con el atributo de clave única ''nombre'' establecido en .... " en cada módulo agregado.
Agregar una etiqueta de eliminar funciona, pero debería haber sido un problema incluso antes de cambiar la URL. ¿Alguna sugerencia?
Además, asegúrese de no tener un archivo web.config duplicado en una de las carpetas principales (por ejemplo, un archivo de copia de seguridad web.config). Ese fue el problema con el mío!
Comencé a recibir este error al azar. Noté que el iis express tenía dos sitios.
Esta doble capa hace que IIS lea el archivo web.config del primer sitio y el segundo en / WFM. por lo tanto, encontrar duplicados. Acabo de detener todos los sitios y eliminé el / WFM de la ruta de mi proyecto web. Sin embargo, puede borrar los archivos y las carpetas de su archivo temporal en IIS express. En mi caso, tenía varias versiones de la solución y el proyecto / user config de una solución tenía una ruta adicional en la URL del proyecto web. VS 2015 lo ha agregado o alguien ha registrado su propia configuración de usuario en TFS. Espero que esto ayude a otros.
Creo que IIS Express probablemente tiene 2 <application>
-blocks y ambos señalarán el mismo physicalPath.
Vaya al archivo de configuración de IIS Express en: My Documents/IISExpress/config/applicationhost.config
Buscar NewProjectName
Cambie el physicalPath para la aplicación raíz a otra cosa. Apúntalo a una carpeta vacía.
Debería verse algo como esto:
<site name="NewProjectName" id="1">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/Temp" />
</application>
<application path="/NewProjectName" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/sourcecode/NewProjectName" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51123:localhost" />
</bindings>
</site>
La URL de mi proyecto en la pestaña Web dentro de las propiedades del proyecto apuntó a la URL incorrecta y no pude cambiarla ("¿Desea crear un directorio virtual?" Y VS se bloqueó en un bucle (Sí -> No se puede crear, No -> Operación cancelada) hasta que revertí manualmente Url al estado (incorrecto) que era antes. La solución fue ejecutar VS como administrador. Pude cambiar esa url y todo comenzó a funcionar. ¡Espero que ayude!
La answer que publicó resolvió el problema para mí, pero además tenía un problema adicional. Después de solucionarlo, Internet Explorer aún pensaba que mi página HTML era un directorio en lugar de un archivo.
Tenía duplicados en mi archivo de configuración de IIS Express:
<site name="MyAPI" id="56">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:/source/repos/MyAPI" />
</application>
<application path="/login.html" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:/source/repos/MyAPI" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:57018:localhost" />
<binding protocol="https" bindingInformation="*:44302:localhost" />
</bindings>
</site>
Tenga en cuenta la ruta = "/ login.html" en la segunda entrada de <aplicación>.
Mi página estaba redireccionando a "localhost: 57018 / login.html /" como si fuera un directorio.
La eliminación de la segunda entrada solucionó el problema con el archivo de configuración duplicado, sin embargo, continué teniendo un problema donde Internet Explorer parecía pensar que /login.html/ era un directorio (Internet Explorer 11). Para diagnosticar el problema, revisé Chrome y Chrome funcionó bien.
Entré en Internet Explorer, fui a Herramientas> Opciones de Internet> pestaña General. Luego, en la sección "Historial de navegación", borré el historial, las cookies y los datos del sitio web, y la temperatura. Archivos de Internet.
Puede encontrar que después de actualizar al último Service Pack de Windows 10 en junio de 2017, este problema se debe a que ciertos nodos parecen ahora aparecer bajo la configuración raíz (machine.config). Eliminé mis duplicados de web.config y todo funcionó de nuevo.
Si crea un sitio web de IIS con la ruta física igual que la carpeta del proyecto y luego lo usa, cree una carpeta virtual para el proyecto, verá este problema.
Su archivo Web.config
se está cargando dos veces.
En cambio, como orjanto señaló, cree una carpeta vacía y apunte el sitio web de IIS con ella y luego utilícela para crear una carpeta virtual desde Visual Studio.
Todos los archivos web.config
funcionan con múltiples niveles de herencia en cascada en la máquina, IIS, proyecto y ubicaciones de nivel de carpeta, cada uno de los cuales proporciona un mayor grado de especificidad.
Si obtiene este error, significa que tiene:
- Se agregó la misma clave dos veces en el mismo archivo (poco probable ya que lo habría visto)
- La misma clave ya existe en un archivo separado más arriba en la cadena de herencia
Puede haber muchas causas diferentes para el n. ° 2, pero si quiere dar un paso al costado, puede eliminar cualquier declaración previa y luego volver a agregar la suya en ese nivel (pagaría un buen dinero por una función de reposición). )
Así que solo agregue etiquetas <remove>
como esta para cualquier elemento ofensivo:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="ErrorLog" />
<remove name="ErrorMail" />
<remove name="ErrorFilter" />
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
Tuve un problema del mismo tipo. Ejecutando mi sitio publicado en IIS, se mostró el mismo error.
Vi un archivo web.config
en la carpeta wwwroot
(fuera de la carpeta de la aplicación). Eliminé este archivo y la aplicación se ejecutó correctamente.
Busque un archivo web.config
colocado en una carpeta incorrecta (arriba de su aplicación de carpeta).
¡Buena suerte!
Yo tuve el mismo problema. Resultó que tenía un proyecto diferente que usa IISExpress con el mismo número de puerto. Una vez que cambié el proyecto para usar un número de puerto diferente, el error desapareció.