asp.net-mvc visual-studio-2010-beta-2 iis-7.5

asp.net mvc - Conseguir que una aplicación ASP.MVC2/VS2010 funcione en IIS 7.5



asp.net-mvc visual-studio-2010-beta-2 (8)

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

Lo que funcionó fue ejecutar esto:

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

en una ventana de comando ... trabaja como un sueño ahora!

(Por lo tanto, ¿no se instala ASP.Net en IIS de manera predeterminada al instalar VS2010?)

Recientemente descargué la versión beta 2 de VS2010 y comencé 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 (ejecuto Windows 7). He instalado la compatibilidad con la metabase de IIS6 y ejecuto VS2010 como administrador, por lo que puedo usar el botón "Crear directorio virtual" en 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 funciona. Ya he agregado UrlRouting como un módulo y un controlador a la web.config. En mis búsquedas, esto se ofrece como una solución para algunos problemas similares. Pero para mí esto todavía no funciona.

La parte interesante de mi web.config se parece a 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>


Agregue esto a su archivo web.config :

<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <!-- rest of config --> </system.webServer>


Después de más pruebas e intentos, noté en el cuadro de diálogo "Activar o desactivar las características de Windows" que faltaban los "Errores HTTP" y la "Redirección HTTP". Esto es extraño porque, por lo que puedo recordar, fue instalado automáticamente por el instalador de la plataforma web de Microsoft. En cualquier caso, el "Redireccionamiento de HTTP" parecía una característica que se necesita para trabajar cuando se trabaja con MVC. Así que después de que lo instalé todo parecía funcionar perfectamente.



Estaba construyendo una aplicación MVC2 en mi computadora portátil Windows 7, usando .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 implementé .net 4.0 beta, pero ninguna de las otras cosas que venían con la descarga beta de VS 2010. Bajo esta configuración, el enrutamiento nunca funcionó hasta que habilito la Redirección de HTTP como lo indica Jeroen.

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



Solo quería tener en cuenta que estaba teniendo el mismo problema con 403 y 404, pero agregar el system.webServer y todos los elementos del nodo system.web/pages/namespaces resolvieron por mí.


Tenga en cuenta que debe ejecutar aspnet_regiis.exe -ir como administrador, parece obvio, pero cuando está cansado de intentar cosas sin éxito para resolverlo, puede aprobarlo.

Solo por agradecer a todas las respuestas, después de muchas horas probando cosas diferentes, finalmente pude hacer funcionar mi aplicación MVC 2 en IIS.