Iteam
GitHub

Hur man får igång MVC på IIS 7 med website i Classic Mode

Per default skapas alla sajter i IIS 7 i Integrated Mode vilket också är att rekommendera men ibland måste man ändå använda Classic mode. Idag är orsaken, för mig, en äldre komponent i en MVC-applikation som kräver Classic Mode.

Det går bra att köra MVC på IIS 7 med Classic Mode men då behöver du själv lägga in en wildcard-mappning för att få routingen att fungera. Nackdelen är just att du lägger till en wildcard-mappning vilket innebär att ALLA requests kommer att gå genom .net-motorn, det är alltså inklusive bilder och andra resursfiler, vilket är extra prestandakrävande för servern.

Hur gör man då?

1. Konfigurera wildcard-mappning i IIS:en.

Öppna Handler Mappings för din website.


Välj sedan ”Add wildcard script map” i högerkolumnen. I rutan som dyker upp anger du sökvägen till aspnet_isapi för den frameworkversion du använder. Du hittar den i din windows-katalog, t ex här C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll. Namn anger du till något för dig relevant.


2. Gör en rot-mappning i global.asax.

I RegisterRoutes i Global.asax, lägg till följande:


Notera att samma justeringar för IIS 7 i Classic Mode behöver göras för att köra MVC i IIS 6.

Johanna Gustafsson
2011-06-08