Delen via


WCF-servicepublicatie

Windows Communication Foundation (WCF) Service Publishing helpt u bij het overgaan van de vroege ontwikkelomgeving zoals geboden door de WCF-servicehost en WCF-testclient naar het daadwerkelijk implementeren van de toepassing in een productieomgeving voor testdoeleinden. Voordat u een definitief implementatieplan doorvoert, kunt u WcF-servicepublicatie (Windows Communication Foundation) gebruiken om te controleren of uw WCF-service correct presteert en klaar is om te worden gepubliceerd. U kunt er ook voor kiezen om uw WCF-servicebibliotheken te implementeren op verschillende doellocaties voor testen.

Ondersteunde services en doellocaties

WCF-servicepublicatie ondersteunt het publiceren van WCF-services die zijn gemaakt op basis van de set WCF-servicebibliotheeksjablonen en de bijbehorende itemsjablonen, waaronder:

  • Sjabloon voor WCF-servicebibliotheek met itemsjabloon.

  • Syndicatie Dienstbibliotheek.

U vindt deze servicesjablonen door File>New Project> [Visual Basic of Visual C#] >WCF te kiezen. Voor andere WCF-sjablonen op deze locatie (inclusief WCF-werkstroomservicetoepassing en WCF-servicetoepassing), kunt u publiceren met behulp vanOne-Click publiceren voor webtoepassingen.

De service kan worden gepubliceerd naar de volgende doellocaties.

  • Lokale IIS.

  • Bestandssysteem.

  • FTP-site.

Het gebruik van WCF-servicepublicatie

Voer de volgende stappen uit om een service-implementatie te implementeren:

  1. Open Visual Studio met verhoogde bevoegdheden (klik met de rechtermuisknop op het uitvoerbare bestand en kies Uitvoeren als administrator om het te openen). Als u IIS 7.0 of hoger gebruikt, controleert u of u het onderdeel IIS Metabase en IIS6-configuratiecompatibiliteit hebt geïnstalleerd met windows-functies in- of uitschakelen in het Configuratiescherm.

  2. Open een serviceproject, selecteer Bouwen>Publiceren <Projectnaam> in het hoofdmenu of klik met de rechtermuisknop op het project in Solution Explorer en klik op Publiceren.

  3. Het venster Publiceren wordt weergegeven. Klik op de .... om de doellocatie op te geven waarnaar de service moet worden geïmplementeerd. U kunt ervoor kiezen om de toepassing te implementeren op een lokale IIS-, bestandssysteem- of FTP-site. Als u de toepassing implementeert in lokale IIS, kunt u uw website selecteren en uw webtoepassing eronder maken door te klikken op het pictogram Nieuwe webtoepassing maken in de rechterbovenhoek.

  4. Nadat u in het hoofdvenster op Publiceren hebt geklikt, implementeert Visual Studio de toepassing op de opgegeven doellocatie en kopieert u de Web.config-, .svc- en assemblybestanden naar de doelmap. . De naam van .svc is ProjectName.ServiceName.svc. Nadat de service is gepubliceerd, kunt u een hotlink vinden in het visual studio-uitvoervenster, dat lijkt op 'Verbinding maken met http://localhost/WebApplicationFolderName...'. U kunt op Ctrl drukken en op de koppeling klikken om een browserpagina in Visual Studio te openen om de structuur van de servicemap weer te geven.

    Als u niet naar de site kunt bladeren, kan het zijn dat de mapbrowser niet is ingeschakeld in IIS. Volg de tips in de sectie 'Dingen die u kunt proberen' om deze in te schakelen. U kunt ook rechtstreeks typen http://localhost/WebApplicationFolderName/ProjectName.ServiceName.svc om uw servicepagina weer te geven.

U kunt Publiceren gebruiken om op te geven of u het assembly-, configuratie- en .svc-bestand wilt kopiëren voor alle services die in het project zijn gedefinieerd naar de doellocatie en bestaande bestanden op de bestemming wilt overschrijven.

Als u ervoor kiest om uw toepassing te implementeren in lokale IIS, kunnen er fouten optreden met betrekking tot IIS-installatie. Zorg ervoor dat IIS juist is geïnstalleerd. U kunt in de adresbalk van uw browser invoeren http://localhost en controleren of de standaardpagina van IIS wordt weergegeven. In sommige gevallen kunnen de problemen ook worden veroorzaakt door onjuiste registratie van ASP.NET of WCF in IIS. U kunt de opdrachtprompt voor Visual Studio voor ontwikkelaars openen en de opdracht aspnet_regiis.exe -ir uitvoeren om ASP.NET registratieproblemen op te lossen of voer de opdracht ServiceModelReg.exe –ia uit om WCF-registratieproblemen op te lossen.

Bestanden gegenereerd voor publicatie

Voordat een WCF-servicebibliotheek kan worden gehost, worden de volgende bestanden gegenereerd door het hulpprogramma: assemblybestanden, Web.config-bestand en .svc-bestand. Alle bestanden worden gekopieerd naar de doellocatie. De service wordt vervolgens gepubliceerd.

Assemblybestanden

Wanneer u een WCF-service publiceert met behulp van dit hulpprogramma, wordt de service automatisch eerst gebouwd en worden de assemblybestanden gegenereerd in het serviceproject na het bouwen.

. SVC-bestand

De publicatiebewerking genereert een *.svc-bestand voor elke WCF-service, ongeacht of het bestand al dan niet bestaat, om de geldigheid van de versie te garanderen. Er zijn twee verschillende soorten svc-bestanden: één voor de WCF-servicebibliotheek en de syndicatieservicebibliotheek, en een voor de sequentiële en statusmachinestroomservicebibliotheek. Het gegenereerde *.svc-bestand wordt gekopieerd naar de hoofdmap op de doellocatie.

Web.config-bestand

Telkens wanneer een serviceproject wordt gepubliceerd op een specifieke doellocatie, wordt er een Web.config-bestand gemaakt.

Het gegenereerde bestand Web.config bevat websecties die handig zijn voor webhosting en de inhoud van App.config voor de WCF-servicebibliotheek met de volgende wijzigingen:

  • Het basisadres wordt uitgesloten.

  • Instellingen in het <diagnostics> element worden uitgesloten om de traceringsinstellingen van het doelplatform te behouden.

WCF-services publiceren met niet-HTTP-bindingen naar IIS

Als u IIS7.0 of hoger gebruikt, kunt u WCF-services publiceren met niet-HTTP-bindingen naar IIS. U moet een aantal vooraf geconfigureerde configuraties uitvoeren. Zie de onderwerpen over Hosting in Windows Process Activation Service voor meer informatie.

Veiligheid

Voor publiceren naar lokale IIS zijn beheerdersbevoegdheden vereist, omdat IIS moet worden uitgevoerd in het beheerdersaccount. Als een gebruiker zonder beheerdersbevoegdheden WCF-servicepublicatie opent, is IIS niet beschikbaar als doellocatie. Publiceren naar bestandssysteem of FTP-site werkt zonder beheerdersbevoegdheden.

Zie ook