Binding Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az ügyfelek és szolgáltatások közötti kommunikációhoz használt protokollokat, átviteleket és üzenetkódolókat meghatározó kötéselemeket tartalmazza.
public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
- Öröklődés
-
Binding
- Származtatott
- Megvalósítás
Példák
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "binding1";
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Megjegyzések
Kötéselemek gyűjteménye, amelyek mindegyike leírja, hogyan kommunikál egy végpont más végpontokkal, és amelyek következetesen, az ügyfél egy csatorna-előállítójába és a szolgáltatás csatornafigyelőibe épülnek. A kötések protokollcsatornáknak, átviteli csatornáknak és üzenetkódolóknak megfelelő kötéselemek gyűjteményét tartalmazzák. A protokollcsatornákhoz tetszőleges számú kötési elem lehet, de mindegyik átviteli és üzenetkódolóhoz csak egy kötéselem tartozik. A kötésekben általában hat kötési elemréteg található. Csak a verem alján lévő átviteli és kódolási kötési elemekre van szükség. Mivel minden kötéshez kódolásra van szükség, ha nincs megadva kódolás, Windows kommunikációs alaprendszer (WCF) hozzáad egy alapértelmezett kódolást. Az alapértelmezett szöveg/XML a HTTP- és HTTPS-átvitelekhez, a bináris pedig más átvitelekhez.
Az alábbi táblázat összefoglalja az egyes rétegek beállításait.
| Réteg | Beállítások | Szükséges |
|---|---|---|
| Tranzakciós folyamat | TransactionFlowBindingElement | No |
| Reliability | ReliableSessionBindingElement | No |
| Biztonság | Szimmetrikus, aszimmetrikus, Transport-Level | No |
| Alakzat módosítása | CompositeDuplexBindingElement | No |
| Átviteli frissítések | SSL-stream, Windows-stream, társfeloldó | No |
| Encoding | Szöveg, bináris, MTOM, egyéni | Igen |
| Transport | TCP, Named Pipes, HTTP, HTTPS, MSMQ, Egyedi | Igen |
Minden kötési elem megadja a csatorna-előállító létrehozásának specifikációját az ügyfélen és egy csatornafigyelőt a szolgáltatásban. A csatorna-előállító verem létrehozásakor például egy csatorna-előállító található a kötegben a kötés egyes kötési elemeihez. Ugyanez a leképezés vonatkozik a szolgáltatás veremében lévő csatornafigyelőkre is. Az ügyfél és a szolgáltatás konzisztenciája kritikus fontosságú a végpontok közötti csatornaalapú kapcsolat létrehozásához. Az egyes gyárak és figyelők viszont feldolgozhatják az őket összekötő csatornaverem megfelelő csatornáinak küldését és elfogadását, és ezek a csatornák ezután küldhetik és fogadhatják a kommunikációhoz használt üzeneteket.
A szolgáltatás minden példánya Binding rendelkezik egy-egy Name példánnyal, amely Namespace együttesen egyedileg azonosítja azt a szolgáltatás metaadataiban. Ha nincs megadva név vagy névtér, a WCF alapértelmezett értékeket ad hozzá Önnek. Az alapértelmezett név és null az alapértelmezett névtér.http://tempuri.org/ A kötés felhasználóneve eltér a tulajdonság által Scheme megadott protokollnév specifikációjától. Ha például további HTTP-kötéseket szeretne hozzáadni, nevezze el nekik a kívánt nevet, és állítsa az összes sémát "http" értékre. A rendszer nem tartalmazza az alkalmazás vagy a gép elküldését a Scheme. Így elkerülheti azt a gyakori problémát, hogy nem lehet további kezelőket regisztrálni a jól ismert protokollokhoz. A kötések több verziójával is egyszerűen dolgozhat egymás mellett, ha az egyes verziókat eltérő névvel adhatja meg.
Az Binding osztály implementálja az interfészt a IDefaultCommunicationTimeouts szolgáltatásmegtagadási (DOS-) támadások enyhítésére, amelyek az erőforrások hosszabb ideig történő be- és bekapcsolására támaszkodnak. A megvalósítás meghatározza a kapcsolatok megnyitásához és bezárásához, valamint az üzenetek fogadásához és küldéséhez kapcsolódó olvasási és írási műveletek kommunikációs időtúllépési értékeit. Az időtúllépések lekéréséhez és beállításához használt tulajdonságokat és az alapértelmezett értékműveleteket az alábbi táblázat foglalja össze.
| Időtúllépés tulajdonság | Alapértelmezett érték |
|---|---|
| OpenTimeout | 1 perc |
| CloseTimeout | 1 perc |
| SendTimeout | 1 perc |
| ReceiveTimeout | 10 perc |
Ha egy kötést örökléssel Bindinghoz létre, felül kell bírálnia CreateBindingElements.
Emellett saját kötéselemeket is definiálhat, és beillesztheti őket az előző táblázat bármely definiált rétege közé. További információért lásd a CustomBinding osztályt.
Konstruktorok
| Name | Description |
|---|---|
| Binding() |
Inicializálja az Binding osztály új példányát alapértelmezett névtérrel és névtérrel. |
| Binding(String, String) |
Inicializálja az Binding osztály új példányát a szolgáltatás megadott kötéséből. |
Tulajdonságok
| Name | Description |
|---|---|
| CloseTimeout |
Lekéri vagy beállítja a kapcsolat lezárásához megadott időintervallumot, mielőtt az átvitel kivételt eredményezne. |
| MessageVersion |
Lekéri a kötéssel konfigurált ügyfelek és szolgáltatások által használt üzenetverziót. |
| Name |
Lekéri vagy beállítja a kötés nevét. |
| Namespace |
Lekéri vagy beállítja a kötés XML-névterét. |
| OpenTimeout |
Lekéri vagy beállítja a kapcsolat megnyitásához megadott időintervallumot, mielőtt az átvitel kivételt eredményezne. |
| ReceiveTimeout |
Lekéri vagy beállítja a kapcsolat inaktív állapotának időtartamát, amely alatt nem érkeznek alkalmazásüzenetek, mielőtt megszakadna. |
| Scheme |
Származtatott osztályban való implementáláskor beállítja az URI-sémát, amely a kötések által létrehozott csatorna- és figyelőgyárak által használt átvitelt határozza meg. |
| SendTimeout |
Lekéri vagy beállítja az írási művelethez megadott időintervallumot, mielőtt az átvitel kivételt eredményezne. |
Metódusok
| Name | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
A channel factory vermet azon az ügyfélen hozza létre, amely egy adott típusú csatornát hoz létre, és amely megfelel a kötési paraméterek gyűjteményében megadott funkcióknak. |
| BuildChannelFactory<TChannel>(Object[]) |
A channel factory vermet azon az ügyfélen hozza létre, amely egy adott típusú csatornát hoz létre, és amely megfelel az objektumtömb által megadott funkcióknak. |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogad egy adott típusú csatornát, és amely megfelel a kötési paraméterek gyűjteményében megadott funkcióknak. |
| BuildChannelListener<TChannel>(Object[]) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Létrehozza a csatornafigyelőt arra a szolgáltatásra, amely elfogadja a megadott típusú csatornát, és megfelel a megadott funkcióknak. |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Olyan értéket ad vissza, amely jelzi, hogy az aktuális kötés képes-e csatorna-előállító vermet létrehozni az ügyfélen, amely megfelel a megadott kötési paraméterek gyűjteményének. |
| CanBuildChannelFactory<TChannel>(Object[]) |
Olyan értéket ad vissza, amely jelzi, hogy az aktuális kötés képes-e olyan csatorna-előállító vermet létrehozni az ügyfélen, amely megfelel az objektumtömb által meghatározott követelményeknek. |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Olyan értéket ad vissza, amely jelzi, hogy az aktuális kötés képes-e csatornafigyelő vermet építeni a szolgáltatásra, amely megfelel a megadott kötési paraméterek gyűjteményének. |
| CanBuildChannelListener<TChannel>(Object[]) |
Olyan értéket ad vissza, amely jelzi, hogy az aktuális kötés képes-e olyan csatornafigyelő vermet létrehozni a szolgáltatásban, amely megfelel az objektumok tömbjében megadott feltételeknek. |
| CreateBindingElements() |
Ha egy származtatott osztályban felül van bírálva, létrehoz egy gyűjteményt, amely az aktuális kötés részét képező kötési elemeket tartalmazza. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetProperty<T>(BindingParameterCollection) |
A kötési verem megfelelő rétegéből kért beírt objektumot ad vissza, ha van ilyen. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ShouldSerializeName() |
Azt adja vissza, hogy a kötés nevét szerializálni kell-e. |
| ShouldSerializeNamespace() |
Azt adja vissza, hogy a kötés névterét szerializálni kell-e. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |