2012-01-29 83 views
87

He creado un proyecto ASP.NET MVC 3 y estoy usando IIS Express como servidor web al desarrollar. Cuando intento depurar, aparece el siguiente mensaje de error.IIS Express da error Acceso denegado al depurar ASP.NET MVC

¿Cómo se puede resolver esto?

Error de servidor en la aplicación '/'.

Acceso denegado. Descripción: Se produjo un error al acceder a los recursos necesarios para atender esta solicitud. Es posible que el servidor no esté configurado para acceder a la URL solicitada.

Mensaje de error 401.2 .: No autorizado: Error de inicio de sesión debido a la configuración del servidor. Verifique que tiene permiso para ver este directorio o página según las credenciales que proporcionó y los métodos de autenticación habilitados en el servidor web. Póngase en contacto con el administrador del servidor web para obtener asistencia adicional.

+3

Se está quedando sin el IISExpress ¿Privilegios administrativos? – chandmk

+2

Así que después de golpear mi cabeza en esto por un tiempo, finalmente me di cuenta de que era porque VS no había configurado una página predeterminada y, aparentemente, IISExpress.exe no da listas de carpetas para que sea obvio. –

Respuesta

12

En mi caso tuve que abrir el archivo:

C:\...\Documents\IISExpress\config\applicationhost.config 

Tenía esta dentro del archivo:

<authentication> 
    <anonymousAuthentication enabled="true" User="" /> 

me acaba de quitar la parte User="". Realmente no sé cómo esto llegó allí ... :)

Nota: Asegúrese de que tiene algo como esto en el final de applicationhost.config:

. 
    . 
    . 
    <location path="MyCompany.MyProjectName.Web"> 
     <system.webServer> 
      <security> 
       <authentication> 
        <anonymousAuthentication enabled="true" /> 
        <windowsAuthentication enabled="false" /> 
       </authentication> 
      </security> 
     </system.webServer> 
    </location> 
</configuration> 

También es posible que desee echar un vistazo aquí: https://stackoverflow.com/a/10041779/114029

Ahora puedo acceder a la página de inicio de sesión como se esperaba.

+1

Seguí tus pasos todavía no funciona para mí. Si está abierto desde vs2010 funciona bien, cuál es el problema en comparación con 2013 – GANI

+0

@ user1016740 No estoy seguro porque hay una gran cantidad de posibilidades/caminos a seguir para tratar de resolver este problema. Los pasos que describí aquí lo resolvieron en mi entorno, que creo que es diferente al tuyo. –

93

La causa si tuviera este problema era que IIS Express no permitía la autenticación de Windows. Esto se puede activar mediante el establecimiento de

<windowsAuthentication enabled="true"> 

en el archivo applicationhost.config se encuentra en C: \ Users [nombre de usuario] \ Documents \ IISExpress \ config.

+18

Visual Studio 2010 y 2012 pueden agregar esta configuración para usted, por proyecto, de modo que la configuración global no cambie de su valor predeterminado, consulte http: // stackoverflow.com/a/7168308/23566 –

+0

Estoy probando esa configuración, porque también estoy recibiendo este error en ** VS 2013 ** sporiadically, veamos si ayuda, te lo haré saber. – Matt

+1

Mejor si usa% userprofile% \ documents \ iisexpress \ config \ applicationhost.config. El mío estaba en D: (gracias Dan! Http://www.danesparza.net/2014/09/using-windows-authentication-with-iisexpress/) –

85

Si está utilizando Visual Studio, también puede hacer clic izquierdo en el proyecto en el Explorador de soluciones y cambie la propiedadautenticación de Windows para Habilitado en los Propiedades ventana.

+2

Esto no es específico de Visual Studio 2012, también se puede hacer al menos en Visual Studio 2010. – Louhike

+5

Funcionó para mí en VS 2013. – kaybee99

+0

Esta es la solución menos invasiva. Es probable que MS quiera que hagamos esto. –

5

Tuve que ejecutar Visual Studio en Administrative Mode para deshacerme de este error.

6

En mi caso, una ejecución previa de mi aplicación de VS reservó la URL.Pude ver esto ejecutando en una consola:

netsh http show urlacl 

para eliminar esta reserva me encontré esto en una consola elevada:

netsh http delete urlacl http://127.0.0.1:10002/ 

He encontrado estos pasos here resuelto mi problema.

estoy usando VS2013

+0

Esto es muy útil si alguna vez ha editado su applicationhost.config para ejecutar un sitio en múltiples puertos a la vez. Al eliminar las entradas de .config, no se eliminan las reservas en netsh. Gracias hombre. – Dusda

0

que acaba de arreglar este problema exacto en IIS EXPRESS fija que editando el .config host de aplicación a la sección de localización específica a la de abajo. Había configurado la Autenticación de Windows en Visual Studio 2012, pero cuando ingresé al XML se veía así.

la etiqueta de autenticación de Windows debe agregarse a continuación como se muestra.

<windowsAuthentication enabled="true" /> 

<location path="MyApplicationbeingDebugged"> 
     ``<system.webServer> 
      <security> 
       <authentication> 
        <anonymousAuthentication enabled="false" /> 
        <!-- INSERT TAG HERE --> 
       </authentication> 
      </security> 
     </system.webServer> 
</location> 
0

he estado luchando con este problema tratando de crear una aplicación sencilla para SharePoint utilizando los proveedores alojados.

Después de pasar a través de applicationhost.config, en la sección, basicAuthentication se configuró en falso. Lo cambié a verdadero para pasar el 401.2 en mi escenario. Hay muchos otros enlaces sobre cómo encontrar el applicationhost.config para IIS Express.

17

Alojamiento en IIS Express: 1. Haga clic en su proyecto en el Explorador de soluciones para seleccionar el proyecto. 2. Si el panel Propiedades no está abierto, ábralo (F4). 3. En el panel Propiedades para su proyecto: a) Establezca "Autenticación anónima" en "Desactivado". b) Establezca "Autenticación de Windows" en "Habilitado".

3

También tuve el mismo problema y finalmente pude superarlo.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

he elegido otro número de puerto , y cada cosas se hicieron bien!

0

Ninguno de los anteriores me ha funcionado. Esto había estado funcionando para mí antes de hoy. Luego me di cuenta de que había estado trabajando para crear una conexión alojada en mi computadora portátil y que había compartido una conexión a Internet con mi conexión de red inalámbrica.

Para solucionar mi problema:

Ir a Panel de control> Redes e Internet> Conexiones de red

haga clic derecho sobre cualquier conexión de red inalámbrica secundario que pueda tener (la mía fue nombrado red inalámbrica de conexión 2) y haga clic en 'Propiedades'.

Vaya a la pestaña 'Compartir' en la parte superior.

Desmarque la casilla que dice 'Permitir que otros usuarios de la red se conecten a través de la conexión a Internet de esta computadora'.

Pulse Aceptar> luego Aplicar.

Espero que esto ayude!

40

Utilicé la respuesta de Jason pero quería aclarar cómo entrar a las propiedades.

  1. Seleccionar proyecto en el Explorador de soluciones

enter image description here

  1. F4 para llegar a las propiedades (diferentes que el botón derecho del ratón propiedades)
  2. Cambiar Autenticación de Windows a Habilitado

enter image description here

+3

Muchas gracias por deletrear esto y especificando que son las propiedades F4 las que necesitan ser cambiadas. – PeterDNCO

+1

GRACIAS. UGH FINALMENTE. – kyurthich

+1

¡Gracias! Tuve que configurar 'Autenticación anónima' en 'Habilitado' también. – Mahesh

0

no vi este "completo" responder en cualquier lugar; Acabo de ver uno sobre cómo cambiar los números de los puertos después de que publiqué esto, entonces meh.

Asegúrese de que en las propiedades de su proyecto en Visual Studio, la url del proyecto no está asignada a la misma url o puerto que se utiliza en IIS para enlaces de sitios.

Estoy buscando el "por qué" para esto, pero mi suposición sobre la cabeza es que tanto IIS como IIS Express de Visual Studio utilizan el mismo directorio cuando crean directorios virtuales y Visual Studio solo puede crear nuevos virtuales directorios y no puede modificar ninguno que IIS haya creado cuando aplica sus enlaces al sitio.

no dude en corregirme sobre el por qué.

0

Nuestra página de error estaba detrás de la página de inicio de sesión, pero la página de inicio de sesión tenía un error en uno de los controles, lo que crea un bucle infinito.

Eliminamos todos los controles de la página ofensiva y los volvimos a agregar uno por uno hasta que se localizó y se arregló el control correcto.

1

abrí mi archivo web.config, y se encontró y se retira esta sección:

<authorization> 
    <deny users="?" /> 
</authorization> 

y mi sitio le había salido, pero hay issuues con la autenticación ..

Cuestiones relacionadas