Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting an ASP.MVC2/VS2010 application to work in IIS 7.5

I've recently downloaded beta 2 of VS2010 and started playing with ASP.NET MVC2. Initial development was done with Casini, but now I wanted to run the application from IIS 7.5 (I'm running Windows 7). I've installed the IIS6 metabase compatiblity and I run VS2010 as administrator so I can use the "Create Virtual Directory" button from the "Web" tab of the project settings. This created the web application entry in IIS, but it doesn't work.

When I go to the main page (http://localhost/MyMvcApp/) I get a HTTP 403 error. When I go directly to one of the sub-pages (http://localhost/MyMvcApp/Home/) I get an HTTP 404.

So I guess for some reason the URL routing isn't working. I've already added UrlRouting as a module and a handler to the web.config. In my searches this is offered as a solution for some similair problems. But for me this still doesn't work.

The interesting part of my web.config looke like this:

<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> 
like image 941
Jeroen-bart Engelen Avatar asked Dec 05 '09 13:12

Jeroen-bart Engelen


1 Answers

I've just had this problem, and unfortunately the fix here didn't work for me.

What did work was running this:

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

in a command window...works like a dream now!

(So, is ASP.Net not installed into IIS by default when you install VS2010?)

like image 63
Paul Avatar answered Sep 24 '22 08:09

Paul