Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Visual Studio eszközöket biztosít a Windows Communication Foundation (WCF) és a WCF Data Services, a Microsoft elosztott alkalmazások létrehozására szolgáló technológiáinak használatához. Ez a cikk a Visual Studio szempontjából nyújt bevezetést a szolgáltatásokba. A teljes dokumentációt a WCF Data Services 4.5-ös verziójában találja.
A Windows Communication Foundation (WCF) egy egységes keretrendszer biztonságos, megbízható, átjárható és interoperálható elosztott alkalmazások létrehozásához. Lecseréli a régebbi folyamatközi kommunikációs technológiákat, például az ASMX-webszolgáltatásokat, a .NET-remotingot, az Enterprise Servicest (elosztott összetevőobjektum-modell (DCOM) és a Microsoft Üzenetsort (MSMQ). A WCF egységes programozási modellben egyesíti ezen technológiák funkcióit. Ez a megközelítés leegyszerűsíti az elosztott alkalmazások fejlesztésének tapasztalatait.
WCF Data Services
A WCF Data Services az Open Data (Open Data Protocol (OData)) protokoll szabvány implementációja. A WCF Data Services lehetővé teszi táblázatos adatok közzétételét REST API-k készleteként, amely lehetővé teszi az adatok visszaadását szabványos HTTP-parancsokkal, például GET
, POST
és PUT
DELETE
. A kiszolgálóoldalon a ASP.NET Web API felülírja a WCF Data Servicest az új OData-szolgáltatások létrehozásához. A WCF Data Services ügyféloldali kódtára továbbra is jó választás oData-szolgáltatások Visual Studióból származó .NET-alkalmazásokban való használatához (Project>Add Service Reference). További információ: WCF Data Services 4.5.
WCF programozási modell
A WCF programozási modell két entitás közötti kommunikáción alapul: egy WCF-szolgáltatáson és egy WCF-ügyfélen. A programozási modell a .NET névterébe System.ServiceModel van beágyazva.
WCF szolgáltatás
A WCF-szolgáltatások olyan interfészen alapulnak, amely meghatározza a szolgáltatás és az ügyfél közötti szerződést. A szolgáltatás attribútummal ServiceContractAttribute van megjelölve, ahogy az a következő kódban is látható:
A WCF-szolgáltatás által közzétett függvényeket vagy metódusokat attribútummal OperationContractAttribute jelölheti meg.
A szerializált adatokat úgy is közzéteheti, hogy egy összetett típust attribútummal DataContractAttribute jelöl meg, amely lehetővé teszi az ügyfél adatkötését.
Az interfész és a metódusok definiálása után a rendszer egy olyan osztályba foglalja őket, amely megvalósítja az interfészt. Egyetlen WCF-szolgáltatásosztály több szolgáltatási szerződést is megvalósíthat.
A WCF-szolgáltatás egy végponton keresztül érhető el használat céljából. A végpont biztosítja az egyetlen módot a szolgáltatással való kommunikációra. Más osztályokhoz hasonlóan nem férhet hozzá a szolgáltatáshoz közvetlen hivatkozással.
A végpont egy címből, egy kötésből és egy szerződésből áll. A cím határozza meg a szolgáltatás helyét, például URL-címet, FTP-címet vagy hálózati vagy helyi elérési utat. A kötés határozza meg a szolgáltatással való kommunikáció módját. A WCF-kötések sokoldalú modellt biztosítanak egy olyan protokoll megadásához, mint a HTTP vagy az FTP egy olyan biztonsági mechanizmussal, mint a Windows-hitelesítés vagy a felhasználónevek és jelszavak. A szerződés tartalmazza a WCF szolgáltatásosztály által közzétett műveleteket.
Egyetlen WCF-szolgáltatáshoz több végpont is elérhető. Ez a megközelítés lehetővé teszi, hogy a különböző ügyfelek különböző módokon kommunikáljanak ugyanazzal a szolgáltatással. Egy banki szolgáltatás például egy végpontot biztosíthat az alkalmazottaknak, egy másikat pedig külső ügyfeleknek, ahol mindegyik más címet, kötést vagy szerződést használ.
WCF-ügyfél
A WCF-ügyfél egy proxyból áll, amely lehetővé teszi, hogy az alkalmazás kommunikáljon egy WCF-szolgáltatással, és egy olyan végpontból, amely megfelel a szolgáltatáshoz definiált végpontnak. A proxy az ügyféloldalon jön létre a app.config fájlban, és információkat tartalmaz a szolgáltatás által közzétett típusokról és metódusokról. A több végpontot elérhetővé tevő szolgáltatások esetében az ügyfél kiválaszthatja az igényeinek leginkább megfelelőt, például HTTP-en keresztüli kommunikációhoz és a Windows-hitelesítés használatához.
A WCF-ügyfél létrehozása után ugyanúgy hivatkozhat a szolgáltatásra a kódban, mint bármely más objektumban. A korábban bemutatott metódus meghívásához GetData
például az alábbi példához hasonló kódot kell írnia:
private void button1_Click(System.Object sender, System.EventArgs e)
{
ServiceReference1.Service1Client client = new
ServiceReference1.Service1Client();
string returnString;
returnString = client.GetData(textBox1.Text);
label1.Text = returnString;
}
WCF-eszközök a Visual Studióban
A Visual Studio eszközöket biztosít a WCF-szolgáltatások és a WCF-ügyfelek létrehozásához. További információ : Útmutató: Egyszerű WCF-szolgáltatás létrehozása a Windows Formsban.
WCF-szolgáltatások létrehozása és tesztelése
A WCF Visual Studio-sablonokkal gyorsan létrehozhatja saját szolgáltatását. Ezután használhatja a WCF szolgáltatás automatikus gazdagépét és a WCF-tesztügyfélt a szolgáltatás hibakereséséhez és teszteléséhez. Ezek az eszközök gyors és kényelmes hibakeresési és tesztelési ciklust biztosítanak, és kiküszöbölik azt a követelményt, hogy korai szakaszban kötelezze el magát egy üzemeltetési modell mellett.
WCF-sablonok
A WCF Visual Studio-sablonok alapszintű osztálystruktúrát biztosítanak a szolgáltatásfejlesztéshez. Az Új projekt hozzáadása párbeszédpanelen számos WCF-sablon érhető el, beleértve a WCF szolgáltatástár-projektjeit, a WCF szolgáltatás webhelyeit és a WCF szolgáltatáselem-sablonokat.
Amikor kiválaszt egy sablont, a rendszer fájlokat ad hozzá egy szolgáltatási szerződéshez, egy szolgáltatás-implementációhoz és egy szolgáltatáskonfigurációhoz. Az összes szükséges attribútum már hozzáadva, létrehozva egy egyszerű "Hello World" típusú szolgáltatást, és nem kellett kódot írnia. A valós szolgáltatáshoz függvényeket és metódusokat biztosító kódot adhat hozzá, de a sablonok biztosítják az alapvető alapokat.
További információ: WCF Visual Studio-sablonok.
WCF-szolgáltatásgazda
Amikor elindítja a Visual Studio Hibakeresőt (az F5 kiválasztásával) egy WCF-szolgáltatásprojekthez, a WCF szolgáltatásgazda eszköz automatikusan elindul a szolgáltatás helyi üzemeltetéséhez. Az eszköz számba adja a WCF szolgáltatásprojekt szolgáltatásait, betölti a projekt konfigurációját, és minden egyes megtalált szolgáltatáshoz létrehoz egy gazdagépet.
Az eszköz segítséget nyújt a WCF-szolgáltatások tesztelésében anélkül, hogy további kódot írnál vagy elköteleződnél egy adott gazdagép mellett a fejlesztés során. További információ: WCF szolgáltatásgazda (WcfSvcHost.exe).
WCF-tesztügyfél
A WCF tesztügyfél eszköz lehetővé teszi a tesztparaméterek bevitelét, a bemenet elküldését egy WCF-szolgáltatásnak, és megtekintheti a szolgáltatás válaszát. Az eszköz kényelmes szolgáltatástesztelési élményt nyújt, amikor kombinálja a WCF szolgáltatásgazda szolgáltatással. Az eszköz helye Common7\IDE a Visual Studio telepítési mappájában.
Amikor egy WCF-szolgáltatásprojekt hibakereséséhez az F5 lehetőséget választja, a WCF-tesztügyfél megnyílik, és megjeleníti a konfigurációs fájlban definiált szolgáltatásvégpontok listáját. Tesztelheti a paramétereket, és elindíthatja a szolgáltatást, és megismételheti ezt a folyamatot a szolgáltatás folyamatos teszteléséhez és érvényesítéséhez. További információ: WCF Test Client (WcfTestClient.exe).
WCF-szolgáltatások elérése a Visual Studióban
A Visual Studio leegyszerűsíti a WCF-ügyfelek létrehozásának feladatát azáltal, hogy automatikusan létrehoz egy proxyt és végpontot a Szolgáltatások hozzáadása párbeszédpanelen hozzáadott szolgáltatásokhoz. Minden szükséges konfigurációs információ hozzá lesz adva a app.config fájlhoz. Az idő nagy részében mindössze annyit kell tennie, hogy példányosítja a szolgáltatást a használat megkezdéséhez.
A Szolgáltatás hozzáadása párbeszédpanelen megadhatja egy szolgáltatás címét, vagy megkeresheti a megoldásban definiált szolgáltatást. A rendszer a szolgáltatások által biztosított szolgáltatások és műveletek listáját adja vissza. A szolgáltatások kódban való hivatkozásához is megadhatja a névteret.
A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen testre szabhatja egy szolgáltatás konfigurációját. Módosíthatja a szolgáltatás címét, megadhatja a hozzáférési szintet, az aszinkron viselkedést és az üzenetszerződés típusát, és konfigurálhatja a típus újrafelhasználását.
Szolgáltatásvégpont
Egyes WCF-szolgáltatások több végpontot is elérhetővé tehetnek, amelyeken keresztül az ügyfelek kommunikálhatnak a szolgáltatással. Egy szolgáltatás egy HTTP-kötést használó végpontot tehet közzé felhasználónévvel és jelszóval, valamint egy második végpontot, amely FTP-t használ Windows-hitelesítéssel. Az első végpontot az alkalmazások használják a szolgáltatás tűzfalon kívüli elérésére, míg a második az intraneten használható.
Ebben a forgatókönyvben a endpointConfigurationName
paramétert a szolgáltatáshivatkozás konstruktorának megadásával adja meg.
Megjegyzés:
A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.
Szolgáltatásvégpont kiválasztása
Válasszon ki egy szolgáltatásvégpontot az alábbi lépések végrehajtásával:
Egy WCF-szolgáltatásra mutató hivatkozás hozzáadásához kattintson a jobb gombbal a projektcsomópontra a Megoldáskezelőben , és válassza a Szolgáltatáshivatkozás hozzáadása lehetőséget.
A Kódszerkesztőben adjon hozzá egy konstruktort a szolgáltatáshivatkozáshoz. Cserélje le
ServiceReference
a szolgáltatáshivatkozás névterére, és cserélje leService1Client
a szolgáltatás nevére.
A kód megadásakor megjelenik egy IntelliSense-lista, amely tartalmazza a konstruktor túlterheléseit. Válassza ki a túlterhelést
endpointConfigurationName As String
.A túlterhelés kiválasztása után adja meg az
="<ServiceEndpoint>"
értéket, ahol az<ServiceEndpoint>
a használni kívánt végpontszolgáltatás neve.Jótanács
Az elérhető végpontok nevei a app.config fájlban vannak definiálva.
A WCF szolgáltatáshoz elérhető végpontok keresése
A WCF-szolgáltatáshoz elérhető végpontok megkereséséhez kövesse az alábbi lépéseket:
A Megoldáskezelőben kattintson a jobb gombbal a szolgáltatáshivatkozást tartalmazó projekt app.config fájljára, majd válassza a Megnyitás lehetőséget. A fájl megnyílik a Kódszerkesztőben.
Keresse meg a
<Client>
címkét a fájlban.<Client>
A címkeszakaszban keressen egy beágyazott címkét, amely<Endpoint>
-vel kezdődik.Ha a szolgáltatáshivatkozás több végpontot is biztosít, két vagy több
<Endpoint>
címke van.<EndPoint>
A címkedefinícióban keresse meg aname="<ServiceEndpoint>"
paramétert (ahol<ServiceEndpoint>
a szolgáltatás végpontjának neve látható). Ez az érték annak a szolgáltatásvégpontnak a neve, amelyet át lehet adni aendpointConfigurationName As String
konstruktor túlterhelésének, szolgáltatáshivatkozás céljából.
Szolgáltatásmódszerek aszinkron meghívása
A WCF-szolgáltatások legtöbb metódusa szinkron vagy aszinkron módon hívható meg. Amikor aszinkron módon hív meg egy metódust, az alkalmazás továbbra is dolgozhat a metódus meghívása közben. Ez a megközelítés akkor hasznos, ha a rendszer lassú kapcsolaton keresztül működik.
Amikor szolgáltatáshivatkozást ad hozzá egy projekthez, az alapértelmezett konfiguráció a metódusok szinkron meghívása. A szolgáltatáshivatkozás konfigurálása párbeszédpanelen módosíthatja a metódusok aszinkron meghívásának viselkedését.
A beállítás szolgáltatásonként van beállítva. Ha egy szolgáltatás egyik metódusát aszinkronnak nevezzük, az összes metódust aszinkron módon kell meghívni.
Megjegyzés:
A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.
Metódus aszinkron meghívása
Ha aszinkron módon szeretne meghívni egy szolgáltatásmetódust, kövesse az alábbi lépéseket:
A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.
Válassza a ProjectConfigure Service Reference (Szolgáltatás konfigurálása)> referenciát.
A Szolgáltatáshivatkozás konfigurálása párbeszédpanelen jelölje be az Aszinkron műveletek létrehozása jelölőnégyzetet.
Szolgáltatás által visszaadott kötési adatok
A WCF-szolgáltatás által visszaadott adatokat ugyanúgy kötheti egy vezérlőhöz, mint bármely más adatforrást egy vezérlőhöz. Ha egy WCF-szolgáltatásra mutató hivatkozást ad hozzá, ha a szolgáltatás olyan összetett típusokat tartalmaz, amelyek adatokat adnak vissza, azok automatikusan bekerülnek az Adatforrások ablakba.
A vezérlő kötése a WCF szolgáltatás által visszaadott adatmezőhöz
Ha egy vezérlőt egy WCF-szolgáltatás által visszaadott egyetlen adatmezőhöz szeretne kötni, kövesse az alábbi lépéseket:
Válassza az Adatforrások>megjelenítése lehetőséget. Megnyílik az Adatforrások ablak.
Az Adatforrások ablakban bontsa ki a szolgáltatáshivatkozás csomópontját. A szolgáltatásmegjelenítés által visszaadott összes összetett típus.
Bontsa ki a típuscsomópontot, és tekintse meg a típus adatmezőit.
Jelöljön ki egy mezőt, és bontsa ki a legördülő listát az adattípushoz elérhető vezérlők listájának megtekintéséhez.
Válassza ki azt a vezérlőtípust, amelyhez kötést szeretne kötni.
Húzza a mezőt egy űrlapra. A vezérlő hozzáadódik az űrlaphoz egy BindingSource összetevővel és egy BindingNavigator összetevővel együtt.
Ismételje meg a 4–6. lépést, és kösse össze a többi mezőt.
Kötésvezérlés a WCF szolgáltatás által visszaadott összetett típushoz
Ha egy vezérlőt egy WCF-szolgáltatás által visszaadott összetett típushoz szeretne kötni, kövesse az alábbi lépéseket:
Válassza az Adatforrások>megjelenítése lehetőséget. Megnyílik az Adatforrások ablak.
Az Adatforrások ablakban bontsa ki a szolgáltatáshivatkozás csomópontját. A szolgáltatásmegjelenítés által visszaadott összes összetett típus.
Válasszon ki egy csomópontot egy típushoz, és bontsa ki a legördülő listát az elérhető lehetőségek listájának megtekintéséhez.
Válassza a DataGridView lehetőséget, és tekintse meg az adatokat egy rácson, vagy válassza a Részletek lehetőséget, és tekintse meg az adatokat egyéni vezérlőkkel.
Húzza a csomópontot az űrlapra. A vezérlők hozzáadódnak az űrlaphoz egy BindingSource összetevővel és egy BindingNavigator összetevővel együtt.
Szolgáltatások konfigurálása meglévő típusok újrafelhasználására
Amikor szolgáltatáshivatkozást ad hozzá egy projekthez, a szolgáltatásban definiált összes típus a helyi projektben jön létre. Ez a megközelítés sok esetben duplikált típusokat hoz létre, amikor egy szolgáltatás általános .NET-típusokat használ, vagy amikor a típusok egy megosztott tárban vannak definiálva.
A probléma elkerülése érdekében a hivatkozott szerelvények típusai alapértelmezés szerint meg vannak osztva. Ha le szeretné tiltani a típusmegosztást egy vagy több összeállítás esetében, módosítsa a beállításokat a Szolgáltatáshivatkozások konfigurálása párbeszédpanelen.
Típusmegosztás letiltása egy szerelvényben
Az alábbi lépések végrehajtásával letilthatja a típusmegosztást egyetlen szerelvényben:
A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.
Válassza a Projekt>Szolgáltatás referencia konfigurálása.
A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen jelölje be a megadott hivatkozott szerelvények újrafelhasználási típusait .
Jelölje be minden olyan szerelvény jelölőnégyzetét, ahol engedélyezni szeretné a típusmegosztást. Ha le szeretné tiltani egy szerelvény típusmegosztását, hagyja üresen a jelölőnégyzetet.
Típusmegosztás letiltása az összes szerelvényekben
A típusmegosztást az alábbi lépésekkel is letilthatja az összes szerelvényekben:
A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.
Válassza a Project>Szolgáltatás-referencia konfigurálása lehetőséget.
A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen törölje a jelet a hivatkozott szerelvények típusainak újrafelhasználása jelölőnégyzetből.
Hasonló fogalmak felfedezése
Az alábbi cikkek a WCF-szolgáltatásokkal és a WCF-adatszolgáltatásokkal kapcsolatos fogalmakat és eljárásokat ismertetik.
Cím | Leírás |
---|---|
Útmutató: Alapszintű WCF-szolgáltatás létrehozása a Windows Formsban | Részletes bemutatót nyújt a WCF-szolgáltatások Visual Studióban való létrehozásáról és használatáról. |
Útmutató: WCF-adatszolgáltatás létrehozása WPF és Entity Framework használatával | Részletes bemutatót nyújt a WCF Data Services Visual Studióban való létrehozásáról és használatáról. |
A WCF fejlesztői eszközeinek használata | Ismerteti, hogyan hozhat létre és tesztelhet WCF-szolgáltatásokat a Visual Studióban. |
Útmutató: WCF-adatszolgáltatás-referencia hozzáadása, frissítése vagy eltávolítása | Ismerteti, hogyan keresheti meg a WCF Data Services szolgáltatást a megoldásban a Szolgáltatás hozzáadása párbeszédpanel használatával. |
Szolgáltatáshivatkozások hibaelhárítása | A szolgáltatáshivatkozásokkal és azok megelőzésével kapcsolatos gyakori hibákat mutatja be. |
WCF-szolgáltatások hibakeresése | A WCF-szolgáltatások hibakeresése során előforduló gyakori hibakeresési problémákat és technikákat ismerteti. |
Útmutató: N szintű adatalkalmazás létrehozása | Részletes útmutatást nyújt egy gépelt adatkészlet létrehozásához, valamint a TableAdapter és az adatkészlet kódjának több projektre való elkülönítéséhez. |
Tekintse át a Szolgáltatáshivatkozás konfigurálása párbeszédpanelt | A Szolgáltatáshivatkozás konfigurálása párbeszédpanel felhasználói felületi elemeit ismerteti. |