by DotNetNerd
16. December 2007 14:50
Jeg opdagede idag at det er knap så "lige ud af boksen" som man kunne ønske sig at afvikle ASP.NET og Windows Communication Foundation services under Vista og IIS 7. Man kan kun undre sig over at ihvertfald ASP.NET ikke automatisk installeres ved installation af IIS, men det er åbenbart ikke tilfælder. Det lykkedes dog efter at have rodet lidt at få det til at virke og jeg vil derfor lige skrive en guide hvis andre skulle støde på samme problem.
Installation af IIS og ASP.NET på Windows Vista
For at kunne afvikle en ASP.NET applikation skal man først installere IIS og den tilhørende ASP.NET komponent. Dette kræver administrator rettigheder og gøres ellers ved at:
-
Gå til kontrolpanel -> Programmer og funktioner.
-
Herfra vælger du "Slå windows funktioner til eller fra" i sidemenuen til venstre i vinduet.
-
Vælg internet Information Service og udvid punktet.
-
Udvid "værktøjer til webmanagement" og "kompatibilitet med IIS 6 management".
-
Vælg "Kompatibilitet med IIS-metabase og IIS 6-konfiguration".
-
Udvid også "World wide web services" og Funktioner til programudvikling.
-
Vælg ASP.NET checkboksen.
Du kan nu afvikle ASP.NET applikationer ved at oprette dem på almindeligvis via IIS management værktøjet - eller bruge default sitet ved at smide det i inetpub/wwwroot.
Installation af WCF service modellen
For at kunne afvikle en Windows Communication Foundation service skal service modellen registreres.
Dette gøres ved at:
-
Åben en kommandoprompt med admin rettigheder.
-
Gå til %Windows%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
-
Check status ved at skrive ServiceModelReg -vi og se om service modellen allerede er installeret.
-
Er den ikke installeret skriv ServiceModelReg -i og så skulle modellen blive installeret.
Og nu kan du så også afvikle en Windows Communication Service.
Lige for en god ordens skyld skal det siges at for at hoste en WCF service under IIS 7 skal man blot smide en svc fil med følgende indhold i roden af sitet.
<%@ ServiceHost Language="C#" Debug="true" Service="Syndication.FeedService" %>
Hvor servicen skal pege på klassen der implementerer din service. Dll'en skal ellers bare ligge i en bin mappe som den plejer.