Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az átviteli minta bemutatja, hogyan konfigurálhat egyéni kötéseket különböző átviteli és üzenetkódolási elemekkel. Az egyéni kötéseket a különálló kötéselemek rendezett listája határozza meg.
Megjegyzés:
A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.
Ez a minta a saját hoszt alapján készült, és úgy lett módosítva, hogy három végpontot konfiguráljon a HTTP, TCP és NamedPipe adatátviteli módok egyéni kötésekkel való támogatására. Az ügyfélkonfiguráció hasonlóképpen módosult, és az ügyfélkód úgy módosult, hogy a három végpont mindegyikével kommunikáljon.
A minta bemutatja, hogyan konfigurálhat egy egyéni kötést, amely támogatja az adott átvitelt és üzenetkódolást. Ez egy átvitel és egy üzenetkódolás konfigurálásával érhető el a binding elem számára. Az egyéni kötések definiálásához fontos a kötéselemek sorrendje, mivel mindegyik egy réteget jelöl a csatornaveremben (lásd : Egyéni kötések). Ez a minta három egyéni kötést konfigurál: egy szövegkódolással rendelkező HTTP-átvitelt, egy szövegkódolással rendelkező TCP-átvitelt és egy bináris kódolású NamedPipe-átvitelt.
A szolgáltatáskonfiguráció a következőképpen határozza meg az egyéni kötéseket:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
A minta futtatásakor a műveleti kérelmek és a válaszok a szolgáltatás és az ügyfélkonzol ablakában is megjelennek. Az ügyfél mindhárom végponttal kommunikál, és hozzáfér az első HTTP-hez, majd a TCP-hez, végül pedig a NamedPipe-hez. A szolgáltatás és az ügyfél leállításához nyomja le az ENTER billentyűt az egyes konzolablakokban.
A namedPipeTransport kötés nem támogatja a gépek között végzett műveleteket. Csak ugyanazon a gépen történő kommunikációhoz használható. Ezért amikor gépközi forgatókönyvben futtatja a mintát, megjegyzést fűzzön az ügyfélkódfájl alábbi soraihoz:
CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()
Megjegyzés:
Ha a Svcutil.exe használatával hozza létre újra a minta konfigurációját, mindenképpen módosítsa az ügyfélkonfiguráció végpontnevét az ügyfélkódnak megfelelően.
A példa beállítása, elkészítése és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.
A megoldás C#, C++ vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítésének utasításait.
Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.