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
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.
Í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
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.
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
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.
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.