Conseguir un ASP.Aplicación MVC2 / VS2010 para trabajar en IIS 7.5


Recientemente he descargado beta 2 de VS2010 y empecé a jugar con ASP.NET MVC2. El desarrollo inicial se realizó con Casini, pero ahora quería ejecutar la aplicación desde IIS 7.5 (estoy ejecutando Windows 7). He instalado la compatibilidad de la metabase IIS6 y corro VS2010 como administrador para poder usar el botón " Crear Directorio Virtual "de la pestaña" Web " de la configuración del proyecto. Esto creó la entrada de la aplicación web en IIS, pero no funciona.

Cuando voy a la página principal ( http://localhost/MyMvcApp / ) Obtengo un error HTTP 403. Cuando voy directamente a una de las subpáginas ( http://localhost/MyMvcApp/Home / ) Obtengo un HTTP 404.

Así que supongo que por alguna razón el enrutamiento de URL no está funcionando. Ya he agregado UrlRouting como un módulo y un manejador a la web.config. En mis búsquedas esto se ofrece como una solución para algunos problemas similair. Pero para mí esto todavía no funciona.

La parte interesante de mi web.configuración como esto:

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
  </compilation>
  <authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" />
  </authentication>
  <membership>
    <providers>
      <clear />
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
    </providers>
  </membership>
  <profile>
    <providers>
      <clear />
      <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
    </providers>
  </profile>
  <roleManager enabled="false">
    <providers>
      <clear />
      <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
      <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
    </providers>
  </roleManager>
  <pages>
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
  <httpHandlers>
    <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler" />
  </httpHandlers>
  <customErrors mode="Off" />
</system.web>
<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules runAllManagedModulesForAllRequests="true" >
    <remove name="UrlRoutingModule"/>
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
  <handlers>
    <remove name="MvcHttpHandler" />
    <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler" />
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </handlers>
  <httpErrors errorMode="Detailed" />
</system.webServer>
Author: Jeroen-bart Engelen, 2009-12-05

8 answers

Acabo de tener este problema, y desafortunadamente la solución aquí no funcionó para mí.

Lo que funcionó fue ejecutar esto:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

En una ventana de comandos...funciona como un sueño ahora!

(Así, es ASP.Net ¿no está instalado en IIS de forma predeterminada al instalar VS2010?)

 49
Author: Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-26 12:45:01

Después de más comprobaciones y pruebas, noté en el cuadro de diálogo "Activar o desactivar las características de Windows" que faltaban "Errores HTTP" y "Redirección HTTP". Esto es extraño porque hasta donde puedo recordar esto fue instalado automáticamente por el Instalador de la Plataforma Web de Microsoft. En cualquier caso, la "redirección HTTP" parecía una característica necesaria cuando se trabaja con MVC. Así que después de instalarlo todo parecía funcionar perfectamente.

 25
Author: Jeroen-bart Engelen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-06 23:07:52

Añade esto a tu archivo web.config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <!-- rest of config -->
</system.webServer>
 5
Author: Petrus Theron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-09 11:36:49

Es un dolor hacer esto manualmente. Pero definitivamente factible! Lo logré y lo resumí en esta guía paso a paso sobre agregar un proyecto mvc 2 a una solución de formularios web existente toma. Espero que esto ayude... me tomó años trabajar aunque todos los ajustes de configuración y parece que hay tan pocos recursos sobre el tema.

 2
Author: BritishDeveloper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-05 11:48:32

Lo que me ayudó es usar classic pipeline para AppPool en lugar de integrated: texto alternativo http://img823.imageshack.us/img823/3684/20100612135212.png

 1
Author: Vitaliy Ulantikov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-12 10:54:22

Tenga en cuenta que debe ejecutar aspnet_regiis.exe-ir como administrador, parece obvio pero cuando estás cansado de intentar cosas sin éxito para resolver eso, podrías pasarlo.

Solo para decir un gran GRACIAS a todas las respuestas, después de muchas horas probando cosas diferentes, finalmente pude obtener trabajo mi MVC 2 aplicación en IIS.

 1
Author: Msam85,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-22 13:44:29

Estaba construyendo una aplicación MVC2 en mi computadora portátil Windows 7, utilizando. net beta 2 y VS 2010 beta 2. Cuando instalé todo el entorno de desarrollo en Windows Server 2008, incluido VS, construí la solución y la ejecuté, el enrutamiento funcionó bien.

El siguiente paso fue crear un servidor de producción en Windows Server 2008, en el que se implementó el.net 4.0 beta, pero ninguna de las otras cosas que vinieron con el VS 2010 beta descargar. Bajo esta configuración, el enrutamiento nunca funcionó hasta Habilito la redirección HTTP como indica Jeroen.

Espero que esto ayude a alguien que podría estar en el mismo barco.

 0
Author: Milton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-16 17:07:32

Solo quería señalar que estaba teniendo el mismo problema con 403 y 404s, pero agregar el system.webServer y todos los elementos del nodo system.web/pages/namespaces lo resolvió para mí.

 0
Author: fordareh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-05 22:49:54