Pregunta

Acabo de descargar la beta 2 de VS2010 y comenzó a jugar con ASP.NET MVC2.Desarrollo inicial fue hecho con Casini, pero ahora quería ejecutar la aplicación de IIS 7.5 (estoy corriendo Windows 7).He instalado la metabase de iis 6 compatibilidad y ejecutar VS2010 como administrador para que pueda utilizar el "Crear el Directorio Virtual" botón de la "Web" de la ficha configuración del proyecto.Esto creó la web de entrada de la aplicación en el IIS, pero no funciona.

Cuando me vaya a la página principal (http://localhost/MyMvcApp/) Obtengo un error HTTP 403.Cuando me vaya directamente a una de las sub-páginas (http://localhost/MyMvcApp/Home/) I get de HTTP 404.

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

La parte interesante de mi web.config parece como esta:

<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>
¿Fue útil?

Solución 2

Después de más de comprobar y probar me di cuenta en el "Turn características de Windows o desactivar" de diálogo que "Errores HTTP" y "redirección HTTP" faltaban. Esto es extraño, porque por lo que yo puedo recordar esto se instala de forma automática por la Microsoft Web Platform Installer. En cualquier caso "redirección HTTP" parecía como una característica de necesidad de tener cuando se trabaja con MVC. Así que después de lo instalé todo parecía funcionar a la perfección.

Otros consejos

Yo he tenido este problema, y por desgracia la solución aquí no funciona para mí.

¿Qué trabajo se ejecuta esto:

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

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

(Por lo tanto, es ASP.Net no se instala en IIS de forma predeterminada cuando se instala VS2010?)

Agregue esto a su archivo web.config:

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

Es un dolor de hacer esto manualmente. Pero definitivamente factible ! Lo conseguí y lo resumió en esta guía paso a paso en la añadir un proyecto de MVC 2 a una solución exisitng formularios web aquí. Espero que esto ayude ... me tomó las edades para trabajar a pesar de todos los ajustes de configuración y no parece ser tan pocos recursos en la materia.

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

Sólo para decir un gran agradecimiento a todas las respuestas, después de muchas horas probando cosas diferentes, por fin pude conseguir trabajo mi aplicación MVC 2 en IIS.

Lo que Ayudó a que para mí es el uso clásico de la tubería para el grupo de aplicaciones en lugar de la integral:alt text

que estaba construyendo una aplicación MVC2 en mi portátil con Windows 7, utilizando .NET beta 2 y VS 2010 Beta 2. Cuando instalé todo el entorno de desarrollo de Windows Server 2008, incluyendo VS, construí la solución y corrió, el enrutamiento funcionaba bien.

El siguiente paso fue la creación de un servidor de producción en Windows Server 2008, en el que desplegué el .NET 4.0 beta pero ninguna de las otras cosas, que llegó con la descarga beta VS 2010. Bajo esta configuración, el enrutamiento nunca funcionó hasta que habilitar HTTP redirección como se indica por Jeroen.

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

Sólo quería tener en cuenta que yo estaba teniendo el mismo problema con 403 y 404, pero la adición de la system.webServer y todos los elementos desde el nodo system.web/pages/namespaces resuelto por mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top