Megosztás a következőn keresztül:


Internet Information Services által üzemeltetett WCF-szolgáltatás üzembe helyezése

Az Internet Information Servicesben (IIS) üzemeltetett Windows Communication Foundation (WCF) szolgáltatás fejlesztése és üzembe helyezése a következő feladatokból áll:

  • Győződjön meg arról, hogy az IIS, a ASP.NET, a WCF és a WCF aktiválási összetevő megfelelően van telepítve és regisztrálva.

  • Hozzon létre egy új IIS-alkalmazást, vagy használjon újra egy meglévő ASP.NET alkalmazást.

  • Hozzon létre egy .svc fájlt a WCF szolgáltatáshoz.

  • A szolgáltatás implementációjának üzembe helyezése az IIS-alkalmazásban.

  • Konfigurálja a WCF szolgáltatást.

Az IIS által üzemeltetett WCF-szolgáltatás létrehozásának részletes útmutatója: Útmutató: WCF-szolgáltatás üzemeltetése az IIS-ben.

Győződjön meg arról, hogy az IIS, a ASP.NET és a WCF megfelelően van telepítve és regisztrálva

A WCF, az IIS és a ASP.NET telepítve kell lennie ahhoz, hogy az IIS által üzemeltetett WCF-szolgáltatások megfelelően működjenek. A WCF (a .NET-keretrendszer részeként), a ASP.NET és az IIS telepítésének eljárásai az operációs rendszertől függően változnak. A WCF és a .NET-keretrendszer telepítéséről további információt a fejlesztőknek készült .NET-keretrendszer telepítése című témakörben talál. Az IIS Windows 10 rendszeren való telepítéséhez nyissa meg a Programok és szolgáltatások lehetőséget a Vezérlőpult, majd válassza a Windows-szolgáltatások be- vagy kikapcsolása lehetőséget. A Windows-szolgáltatásokban válassza az Internet Information Services lehetőséget, majd kattintson az OK gombra.

Windows Features with IIS highlighted

Az IIS más operációs rendszerekre való telepítésével kapcsolatos utasításokat az IIS telepítése Windows Vista és Windows 7 rendszeren, valamint az IIS 8.5 telepítése Windows Server 2012 R2 rendszeren című témakörben találja.

A .NET-keretrendszer telepítési folyamata automatikusan regisztrálja a WCF-et az IIS-ben, ha az IIS már megtalálható a gépen. Ha az IIS .NET-keretrendszer után van telepítve, további lépésre van szükség a WCF IIS-ben és ASP.NET való regisztrálásához. Ezt az operációs rendszertől függően az alábbiak szerint teheti meg:

Új IIS-alkalmazás létrehozása vagy meglévő ASP.NET-alkalmazás újrafelhasználása

Az IIS által üzemeltetett WCF-szolgáltatásoknak egy IIS-alkalmazáson belül kell lenniük. Létrehozhat egy új IIS-alkalmazást, amely kizárólag WCF-szolgáltatásokat üzemeltet. Másik lehetőségként üzembe helyezhet egy WCF-szolgáltatást egy olyan meglévő alkalmazásban, amely már ASP.NET 2.0-s tartalmat üzemeltet (például .aspx oldalakat és ASP.NET webszolgáltatásokat [ASMX]). Ezekről a lehetőségekről a WCF-szolgáltatások és a ASP.NET "WCF-szolgáltatások üzemeltetése ASP.NET ASP.NET kompatibilitási módban" című szakaszában talál további információt.

Vegye figyelembe, hogy az IIS 6.0-s és újabb verziói rendszeresen újraindítanak egy izolált objektumorientált programozási alkalmazást. Az alapértelmezett érték 1740 perc. A maximális támogatott érték 71 582 perc. Ez az újraindítás le lehet tiltani. A tulajdonságról további információt a PeriodicRestartTime című témakörben talál.

.svc fájl létrehozása a WCF szolgáltatáshoz

Az IIS-ben üzemeltetett WCF-szolgáltatások speciális tartalomfájlokként (.svc fájlok) jelennek meg az IIS-alkalmazásban. Ez a modell hasonló ahhoz, ahogyan az ASMX-oldalak az IIS-alkalmazásokban .asmx fájlokként jelennek meg. A .svc fájl tartalmaz egy WCF-specifikus feldolgozási irányelvet (@ServiceHost), amely lehetővé teszi, hogy a WCF üzemeltetési infrastruktúrája aktiválja az üzemeltetett szolgáltatásokat a bejövő üzenetekre válaszul. A .svc fájlok leggyakoribb szintaxisa az alábbi utasításban található.

<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %>

Ez a @ServiceHost irányelvből és egyetlen attribútumból áll. Service Az attribútum értéke a Service szolgáltatás-implementáció közös nyelvi futtatókörnyezetének (CLR) neve. Ennek az irányelvnek a használata alapvetően egyenértékű egy szolgáltatás gazdagépének a következő kóddal történő létrehozásával.

new ServiceHost( typeof( MyNamespace.MyServiceImplementationTypeName ) );

További üzemeltetési konfiguráció, például a szolgáltatáshoz tartozó alapcímek listájának létrehozása is elvégezhető. Egyéni megoldásokkal ServiceHostFactory is kibővítheti az irányelveket az egyéni üzemeltetési megoldásokkal való használatra. A WCF-szolgáltatásokat üzemeltető IIS-alkalmazások nem felelősek a példányok létrehozásának és élettartamának kezeléséért ServiceHost . A felügyelt WCF üzemeltetési infrastruktúra dinamikusan hozza létre a szükséges ServiceHost példányt, amikor az első kérés érkezik a .svc fájlhoz. A példány csak akkor jelenik meg, ha az kifejezetten kóddal van lezárva, vagy amikor az alkalmazást újrafeldolgozták.

A .svc fájlok szintaxisával kapcsolatos további információkért lásd : @ServiceHost.

A szolgáltatás implementációjának üzembe helyezése az IIS-alkalmazásban

Az IIS-ben üzemeltetett WCF-szolgáltatások ugyanazt a dinamikus fordítási modellt használják, mint ASP.NET 2.0. Az ASP.NET-hoz hasonlóan az IIS által üzemeltetett WCF-szolgáltatások implementációs kódját többféleképpen is üzembe helyezheti különböző helyeken, az alábbiak szerint:

  • Előre összeállított .dll fájlként, amely a globális szerelvénygyorsítótárban (GAC) vagy az alkalmazás \bin könyvtárában található. Az előre összeállított bináris fájlok csak az osztálytár új verziójának üzembe helyezéséig frissülnek.

  • Az alkalmazás \App_Code könyvtárában található, nem lefordított forrásfájlokként. A könyvtárban található forrásfájlok dinamikusan szükségesek az alkalmazás első kérésének feldolgozásakor. A \App_Code könyvtárban lévő fájlok módosításai miatt a teljes alkalmazás újraindul, és a következő kérés érkezésekor újrafordítódik.

  • A .svc fájlban közvetlenül elhelyezett, nem lefordított kódként. A implementációs kód a szolgáltatás .svc fájljában is elhelyezhető a @ServiceHost irányelv után. A beágyazott kód módosításai miatt az alkalmazás újraindul, és a következő kérés érkezésekor újrafordítódik.

A ASP.NET 2.0 fordítási modellről további információt ASP.NET Fordítás áttekintése című témakörben talál.

A WCF szolgáltatás konfigurálása

Az IIS által üzemeltetett WCF-szolgáltatások a konfigurációjukat az applications Web.config fájlban tárolják. Az IIS által üzemeltetett szolgáltatások ugyanazokat a konfigurációs elemeket és szintaxist használják, mint az IIS-en kívül üzemeltetett WCF-szolgáltatások. Az alábbi korlátozások azonban egyediek az IIS üzemeltetési környezetében:

  • Az IIS által üzemeltetett szolgáltatások alapcímei.

  • Az IIS-en kívüli WCF-szolgáltatásokat üzemeltető alkalmazások úgy szabályozhatják az általuk üzemeltetett szolgáltatások alapcímét, hogy átadnak egy alapcím-URI-t a ServiceHost konstruktornak, vagy egy gazdagépelemet> biztosítanak <a szolgáltatás konfigurációjában. Az IIS-ben üzemeltetett szolgáltatások nem tudják szabályozni az alapcímüket; az IIS által üzemeltetett szolgáltatás alapcíme a .svc fájl címe.

Végpontcímek az IIS által üzemeltetett szolgáltatásokhoz

Az IIS-ben üzemeltetett végpontcímek mindig a szolgáltatást képviselő .svc fájl címéhez viszonyítva jelennek meg. Ha például egy WCF-szolgáltatás alapcíme a következő végpontkonfigurációval rendelkezik http://localhost/Application1/MyService.svc :

<endpoint address="anotherEndpoint" />

Ez egy végpontot biztosít, amely a címen http://localhost/Application1/MyService.svc/anotherEndpointérhető el.

Hasonlóképpen, a relatív címként üres sztringet használó végpontkonfigurációs elem egy végpontot http://localhost/Application1/MyService.svcbiztosít, amely az alapcím.

<endpoint address="" />

Az IIS által üzemeltetett szolgáltatásvégpontokhoz mindig relatív végpontcímeket kell használnia. A teljes végpontcím (például ) megadása a szolgáltatás üzembe helyezésének hibáihoz vezethet, http://localhost/MyService.svcha a végpont címe nem a végpontot kihelyező szolgáltatást üzemeltető IIS-alkalmazásra mutat. A relatív végpontcímek üzemeltetett szolgáltatásokhoz való használata elkerüli ezeket a lehetséges ütközéseket.

Elérhető átvitelek

Az IIS 5.1-ben és az IIS 6.0-ban üzemeltetett WCF-szolgáltatások HTTP-alapú kommunikációra korlátozódnak. Ezeken az IIS-platformokon egy üzemeltetett szolgáltatás http-kötés használatára való konfigurálása hibát eredményez a szolgáltatás aktiválása során. Az IIS 7.0 esetében a támogatott átvitelek közé tartozik a HTTP, a Net.TCP, a Net.Pipe, a Net.MSMQ és az msmq.formatname a meglévő MSMQ-alkalmazásokkal való visszamenőleges kompatibilitás érdekében.

HTTP átviteli biztonság

Az IIS által üzemeltetett WCF-szolgáltatások http átviteli biztonságot használhatnak (például HTTPS- és HTTP-hitelesítési sémákat, például alapszintű, kivonatoló és Windows integrált hitelesítést), amennyiben a szolgáltatást tartalmazó IIS virtuális könyvtár támogatja ezeket a beállításokat. Az üzemeltetett végpont kötésének HTTP átviteli biztonsági beállításainak meg kell egyeznie az azt tartalmazó IIS virtuális könyvtár átviteli biztonsági beállításaival.

A HTTP-kivonatoló hitelesítés használatára konfigurált WCF-végpontnak például egy olyan IIS virtuális könyvtárban kell lennie, amely a HTTP-kivonatoló hitelesítés engedélyezésére is konfigurálva van. Az IIS-beállítások és a WCF-végpontbeállítások nem egyező kombinációi hibát eredményeznek a szolgáltatás aktiválása során.

Lásd még