A Windows Communication Foundation mintáinak létrehozása

A Windows Communication Foundation (WCF) mintái a Visual Studio IDE vagy a parancssorból származó msbuild paranccsal hozhatók létre. Mindkét eljárást ebben a cikkben ismertetjük.

Megjegyzés:

A WCF-minták létrehozása vagy futtatása előtt győződjön meg arról, hogy elvégezte a windowsos kommunikációs alapmintákOne-Time beállítási eljárását.

A minta létrehozása parancssor használatával

  1. Nyissa meg a Visual Studio fejlesztői parancssorát, és keresse meg a nyelvspecifikus alkönyvtárat annak a könyvtárnak a helyén, ahol a mintát telepítette.

  2. Írja be msbuild a parancssorba. Az ügyfélprogram fájljai az ügyfél\bin fájlra, a szolgáltatásprogram fájljai pedig a service\bin fájlra épülnek. Ha a szolgáltatást az Internet Information Services (IIS) üzemelteti, a program a szolgáltatásprogram fájljait is átmásolja a servicemodelsamples könyvtárba és annak \bin alkönyvtárába.

Megjegyzés:

Az ACL-eket a %systemdrive%\inetpub\wwwroot webhelyen kell beállítania ahhoz, hogy módosítási engedélyeket adjon ahhoz a fiókhoz, amelyen fut. Ellenkező esetben egyes utólagos build események sikertelenek lesznek. Másik lehetőségként elhagyhatja az ACL-eket, és rendszergazdaként futtathatja az SDK parancssorát.

A minta létrehozása a Visual Studióval

  1. A Visual Studio Fájl menüjében válassza aProjekt/megoldás> lehetőséget. Lépjen a nyelvspecifikus alkönyvtárra annak a könyvtárnak a alatta, amelyben telepítette a mintát, majd kattintson duplán a .sln fájlikonra a megoldás Visual Studióban való megnyitásához.

  2. A Build menüben válassza a Megoldás újraépítése lehetőséget.

    Az ügyfélprogram fájljai az ügyfél\bin fájlra, a szolgáltatásprogram fájljai pedig a service\bin fájlra épülnek. Ha a szolgáltatás IIS-ben van üzemeltetve, a szolgáltatásprogram fájljai a servicemodelsamples könyvtárba és annak \bin alkönyvtárába is át lesznek másolva.

Megjegyzés:

Az ACL-eket a %systemdrive%\inetpub\wwwroot webhelyen kell beállítania ahhoz, hogy módosítási jogosultságokat adjon annak a fióknak, amely alatt futtatva van. Ellenkező esetben egyes utólagos build események sikertelenek lesznek. Másik lehetőségként elhagyhatja az ACL-eket, és futtathatja az SDK parancssorát vagy a Visual Studiót rendszergazdaként. Egyes Visual Studio-műveletek (például hibakereső csatolása a ASP.NET feldolgozó folyamatához) rendszergazdai jogosultságokat is igényelnek.

Batch-fájlok és -szkriptek beállítása

A Setup.exe és Cleanup.exe batch fájlokat és szkripteket a Visual Studio Fejlesztői Parancssorából kell futtatni. Több beállítási és törlési fájl olyan feladatokat hajt végre, amelyek rendszergazdai jogosultságokat igényelnek, és rendszergazdai jogosultságokkal kell elindítani.

A metaadatok végpontjaival kapcsolatos fontos biztonsági információk

A potenciálisan bizalmas szolgáltatás metaadatainak véletlen közzétételének megakadályozása érdekében a Windows Communication Foundation (WCF) szolgáltatások alapértelmezett konfigurációja letiltja a metaadatok közzétételét. Ez a viselkedés alapértelmezés szerint biztonságos, de azt is jelenti, hogy nem használhat metaadat-importáló eszközt (például Svcutil.exe) a szolgáltatás hívásához szükséges ügyfélkód létrehozásához, kivéve, ha a szolgáltatás metaadat-közzétételi viselkedése kifejezetten engedélyezve van a konfigurációban. A minták kipróbálásának megkönnyítése érdekében szinte minden minta egy nem biztonságos metaadat-közzétételi végpontot tesz elérhetővé. Ezek a végpontok potenciálisan elérhetők névtelen, hitelesítés nélküli felhasználók számára, és az ilyen végpontok üzembe helyezése előtt ügyelni kell arra, hogy a szolgáltatás metaadatainak nyilvános közzététele megfelelő legyen. A szolgáltatás metaadatainak közzétételével kapcsolatos további információkért tekintse meg a metaadatok közzétételi viselkedési mintáját. Lásd a egyéni biztonságos metaadatok végpontjának mintáját, amely bemutatja, hogyan lehet a metaadat-végpontot biztosítani.

Kivételkezelés

Általánosságban elmondható, hogy ezek a minták nem tartalmaznak kivételkezelést, hogy a kód a minta tárgyára összpontosítson. A kivételkezeléssel kapcsolatos további információkért tekintse meg a Várt kivételek mintát.

Ügyfelek és konfiguráció újragenerálása az Svcutil használatával

A ServiceModel Metadata Segédprogram (Svcutil.exe) használatával újragenerálhatja a legtöbb minta ügyfélkódját és konfigurációját. Egyes minták manuális szerkesztést igényelnek. Ha például az ügyféltanúsítvány hitelesítő adatait használó minta konfigurációjának újragenerálásához Svcutil.exe használ, manuálisan kell megadnia a korábban konfigurált hitelesítő adatokat. Egyes minták konkrét Svcutil.exe-beállításokat használnak a létrehozott kód befolyásolására, ezeket a beállításokat az adott mintatémakörökben adhatók meg.

Az ügyfél- és konfigurációs fájlok újragenerálása

  1. Nyisson meg egy SDK-parancssort, és keresse meg a nyelvspecifikus alkönyvtárat annak a könyvtárnak a helyén, ahol a mintát telepítette.

  2. Ha a szolgáltatás egy webalapú típus, használja az alábbi parancsot.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Ha a szolgáltatás saját üzemeltetésű, írja be a következő parancsot.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Cserélje le http://localhost:8000/ServiceModelSamples/service.svc/mex a saját üzemeltetésű szolgáltatás mex végpontjának címére.

    A Visual Basic típusú kliens létrehozásához használja az alábbi parancsot.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Ha a szolgáltatás egy saját üzemeltetésű típus, használja az alábbi parancsot.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Megjegyzés:

    Az ügyfélkonfiguráció generációjának kihagyásához adja hozzá a /noConfig lehetőséget.

Lásd még