EPiServer, IIS 7 och ClassFactory not initialized
Om du får felmeddelandet ClassFactory not initalized när du försöker köra en EPiServer-webbplats så beror det troligtvis på att du har fel Web.Config-inställningar för din webbplats.
Det kompletta felmeddelandet lyder:
EPiServer.BaseLibrary.ClassFactoryException: ClassFactory not initialized
Det som oftast har hänt är att webbplatsen körs med fel Web.Config-inställningar för den webbserver webbplatsen ligger på. Det är troligt att en webbplats som tidigare körts på IIS 6 genererar ovanstående felmeddelande i IIS 7.
Det finns flera sätt att lösa detta på:
- Genom att uppdatera Web.Config med rätt inställningar för IIS 7.
- Genom att köra webbplatsen i en Application Pool med stöd för IIS 6.
Rekommendationen från EPiServer är att uppdatera Web.Config med inställningar för IIS 7. EPiServer har publicerat ett dokument gällande skillnader mellan IIS 6 och IIS 7, där du kan läsa närmre om de förändringar du behöver göra.
Ett annat sätt att lösa problemet på är att aktivera stöd för IIS 6-motorn i nya IIS 7. Det gör du så här:
- Gå till Aktivera Windows-funktioner under Kontrollpanelen->Program och funktioner->Aktivera eller inaktivera Windows-funktioner.
- Expandera noden Internet Information Services->Web Management Tools och kryssa i IIS 6 Management Compatibility. Tryck OK.
- I IIS 7, högerklicka på din webbplats, Välj Manage Web Site->Advanced Settings och välj Classic .NET AppPool under Application Pool. Klart!
Vilket sätt du föredrar beror på hur mycket av IIS 7:s funktionalitet du behöver, samt vilken webbserver webbplatsen ska ligga på när den lanseras.