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


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.

Feljegyzés

A WCF-minták létrehozása vagy futtatása előtt győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri 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.

Feljegyzés

A %systemdrive%\inetpub\wwwroot ACL-eket be kell állítania ahhoz, hogy módosítási engedélyeket adjon ahhoz a fiókhoz, amelyen fut. Ellenkező esetben egyes buildelési események sikertelenek. 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 a Projekt/megoldás megnyitása>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.

Feljegyzés

A %systemdrive%\inetpub\wwwroot ACL-eket be kell állítania ahhoz, hogy módosítási engedélyeket adjon ahhoz a fiókhoz, amelyen fut. Ellenkező esetben egyes buildelési események sikertelenek. 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

Setup.exe és Cleanup.exe kötegelt 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. A metaadat-végpont védelmét biztosító minta az egyéni biztonságos metaadatok végpontjának mintájában található.

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édprogrammal (Svcutil.exe) ú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 Svcutil.exe használ az ügyféltanúsítvány hitelesítő adatait használó minta konfigurációjának újragenerálásához, manuálisan kell megadnia a korábban konfigurált hitelesítő adatokat. Egyes minták adott 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.

    Az ügyfél Visual Basic típusú 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
    

    Feljegyzés

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

Lásd még