WS_LISTENER_PROPERTY_ID-Enumeration (webservices.h)

Jede Listenereigenschaft ist vom Typ WS_LISTENER_PROPERTY, wird durch eine ID identifiziert und verfügt über einen zugeordneten Wert. Wenn beim Erstellen des Listeners keine Eigenschaft angegeben wird, wird deren Standardwert verwendet.

Syntax

typedef enum {
  WS_LISTENER_PROPERTY_LISTEN_BACKLOG = 0,
  WS_LISTENER_PROPERTY_IP_VERSION = 1,
  WS_LISTENER_PROPERTY_STATE = 2,
  WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL = 3,
  WS_LISTENER_PROPERTY_CHANNEL_TYPE = 4,
  WS_LISTENER_PROPERTY_CHANNEL_BINDING = 5,
  WS_LISTENER_PROPERTY_CONNECT_TIMEOUT = 6,
  WS_LISTENER_PROPERTY_IS_MULTICAST = 7,
  WS_LISTENER_PROPERTY_MULTICAST_INTERFACES = 8,
  WS_LISTENER_PROPERTY_MULTICAST_LOOPBACK = 9,
  WS_LISTENER_PROPERTY_CLOSE_TIMEOUT = 10,
  WS_LISTENER_PROPERTY_TO_HEADER_MATCHING_OPTIONS = 11,
  WS_LISTENER_PROPERTY_TRANSPORT_URL_MATCHING_OPTIONS = 12,
  WS_LISTENER_PROPERTY_CUSTOM_LISTENER_CALLBACKS = 13,
  WS_LISTENER_PROPERTY_CUSTOM_LISTENER_PARAMETERS = 14,
  WS_LISTENER_PROPERTY_CUSTOM_LISTENER_INSTANCE = 15,
  WS_LISTENER_PROPERTY_DISALLOWED_USER_AGENT = 16
} WS_LISTENER_PROPERTY_ID;

Konstanten

 
WS_LISTENER_PROPERTY_LISTEN_BACKLOG
Wert: 0
Wird mit WsCreateListener oder WsGetListenerProperty für WS_TCP_CHANNEL_BINDING verwendet.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine ULONG.

Dadurch wird die maximale Länge der Warteschlange für ausstehende Verbindungen gesteuert. Wenn auf festgelegt ist
SOMAXCONN, wird der Backlog auf einen maximal angemessenen Wert festgelegt.
WS_LISTENER_PROPERTY_IP_VERSION
Wert: 1
Wird mit WsCreateListener oder WsGetListenerProperty für WS_TCP_CHANNEL_BINDING oder WS_UDP_CHANNEL_BINDING verwendet.


Der begleitende Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein WS_IP_VERSION Wert.

Diese Eigenschaft gibt an, welche IP-Version der Listener verwenden soll.


Der Standardwert ist WS_IP_VERSION_AUTO.
WS_LISTENER_PROPERTY_STATE
Wert: 2
Wird mit WsGetListenerProperty für alle Kanaltypen verwendet.



Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein WS_LISTENER_STATE Wert.

Gibt den aktuellen WS_LISTENER_STATE des Listeners zurück. Der zurückgegebene Wert ist eine Momentaufnahme des aktuellen Zustands.
Möglicherweise hat sich der Zustand geändert, bevor der Aufrufer
hatte die Möglichkeit, den Wert zu untersuchen.
WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL
Wert: 3
Wird mit WsCreateListener oder WsGetListenerProperty für alle Kanaltypen verwendet.


Der begleitende Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein WS_CALLBACK_MODEL Wert.

Dieser Wert gibt das bevorzugte asynchrone Rückrufmodell beim Ausgeben an.
asynchrone Vorgänge für den Listener oder die Kanäle, die dafür erstellt werden
mit WsCreateChannelForListener.


Der Standardwert ist WS_LONG_CALLBACK.


Die WS_SERVICE_HOST unterstützt nur WS_LONG_CALLBACK als akzeptablen Wert.
für diese Eigenschaft.
WS_LISTENER_PROPERTY_CHANNEL_TYPE
Wert: 4
Wird mit WsGetListenerProperty für alle Kanaltypen verwendet.

Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein WS_CHANNEL_TYPE Wert.

Diese Eigenschaft
gibt das Nachrichtenaustauschmuster des verwendeten Kanals an.
WS_LISTENER_PROPERTY_CHANNEL_BINDING
Wert: 5
Wird mit WsGetListenerProperty für alle Kanaltypen verwendet.

Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein WS_CHANNEL_BINDING-Wert .

Diese Eigenschaft
gibt die Bindung des verwendeten Kanals an.
WS_LISTENER_PROPERTY_CONNECT_TIMEOUT
Wert: 6
Wird mit WsCreateListener oder WsGetListenerProperty für WS_TCP_CHANNEL_BINDING und WS_NAMEDPIPE_CHANNEL_BINDING verwendet.

Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine ULONG.

Ein Accept-Vorgang wartet
für einen unbegrenzten Zeitraum, um den zugrunde liegenden TCP-Socket oder die Named Pipe zu akzeptieren. Diese
Timeout entspricht der Zeit, die für den Handshake "net.tcp" oder "net.pipe" reserviert wurde.
, die zwischen dem Client und dem Dienst stattfindet, sobald der Client eine Verbindung herstellt.
Der Timeoutwert liegt in Millisekunden, wobei der Wert INFINITE angibt.
kein Timeout. Verwenden Sie die Schaltfläche
WS_CHANNEL_PROPERTY_CONNECT_TIMEOUT , um die entsprechende
-Wert auf der Clientseite.


Der Standardwert ist 15000 (15 Sekunden).
WS_LISTENER_PROPERTY_IS_MULTICAST
Wert: 7
Wird mit WsCreateListener oder WsGetListenerProperty für WS_UDP_CHANNEL_BINDING mit WS_CHANNEL_TYPE_DUPLEX verwendet, um anzugeben, dass der Listener eine Multicastadresse überwacht.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist ein BOOL.

Beachten Sie, dass das Festlegen dieser Eigenschaft beim Lauschen auf
eine Multicastadresse. Der Satz von Schnittstellen muss ebenfalls angegeben werden.
mit der WS_LISTENER_PROPERTY_MULTICAST_INTERFACES-Eigenschaft .


Der Kanal überprüft nicht, ob es sich bei der Adresse tatsächlich um eine
eine Multicastadresse, aber sie legt die Wiederverwendung des Sockets fest.
sodass ein anderer Prozess auch denselben Port öffnen kann.


Der Standardwert ist FALSE.
WS_LISTENER_PROPERTY_MULTICAST_INTERFACES
Wert: 8
Wird mit WsCreateListener oder WsSetListenerProperty für WS_UDP_CHANNEL_BINDING mit WS_CHANNEL_TYPE_DUPLEX verwendet.


Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein Array von ULONG-Werten .

Die Größe der Eigenschaft
ist sizeof(ULONG) multipliziert mit der Anzahl der Werte. Jeder Wert steht für
der Schnittstellenindex eines Adapters. Die Indizes von Adaptern können sein.
abgerufen mit der GetAdaptersAddresses-Funktion.


Dieser Wert des WS_LISTENER_PROPERTY_IS_MULTICAST
-Eigenschaft muss TRUE sein, um diese Eigenschaft verwenden zu können.


Der Standardwert ist eine leere Liste (keine Schnittstellen).
WS_LISTENER_PROPERTY_MULTICAST_LOOPBACK
Wert: 9
Wird mit WsCreateListener für WS_UDP_CHANNEL_BINDING
mit WS_CHANNEL_TYPE_DUPLEX.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist ein BOOL.

Dies gibt an, ob Nachrichten
über die Loopbackschnittstelle gesendet wird, wird von diesem Kanal empfangen. Wenn TRUE,
dann werden Nachrichten empfangen (andernfalls werden sie vom Kanal nicht angezeigt).


Dieser Wert des WS_LISTENER_PROPERTY_IS_MULTICAST
-Eigenschaft muss TRUE sein, um diese Eigenschaft verwenden zu können.


Der Standardwert ist TRUE.
WS_LISTENER_PROPERTY_CLOSE_TIMEOUT
Wert: 10
Wird mit WsCreateListener oder WsGetListenerProperty für WS_HTTP_CHANNEL_BINDING mit WS_CHANNEL_TYPE_REPLY verwendet.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine ULONG.

Dies gibt die Anzahl von Millisekunden bis
warten, bis Clients Daten aus Antworten empfangen, wenn WsCloseListener aufgerufen wird.


Der Zweck dieses Timeouts besteht darin, Clients Zeit zu geben, weiterhin empfangen zu können.
Daten aus HTTP-Antworten, die vom Server gesendet werden, bevor der HTTP-Server die Verbindung trennt
die Clientverbindungen.


Die Berechnung des verwendeten Timeoutwerts lautet wie folgt:



  • Bestimmen Sie zum Zeitpunkt des Aufrufs von WsCloseListener die
    Der Zeitpunkt, zu dem die letzte Antwort gesendet wurde (die letzte Antwortzeit). Für die Zwecke von
    Bei dieser Timeoutberechnung wird eine Antwort als gesendet aufgezeichnet, nachdem WsWriteMessageEnd für die Antwort aufgerufen wurde.

  • Berechnen Sie die Differenz zwischen der aktuellen Zeit und der letzten Antwortzeit.

  • Wenn die Differenz größer als der Timeoutwert ist, dann ist der tatsächliche Wert.
    Das verwendete Timeout ist null.

  • Wenn die Differenz kleiner oder gleich dem Timeoutwert ist, dann
    Das tatsächliche verwendete Timeout ist der Timeoutwert abzüglich der Differenz.


Der Standardtimeoutwert ist 5000 (5 Sekunden).
WS_LISTENER_PROPERTY_TO_HEADER_MATCHING_OPTIONS
Wert: 11
Wird mit WsCreateListener für WS_TCP_CHANNEL_BINDING verwendet,
WS_HTTP_CHANNEL_BINDING, WS_UDP_CHANNEL_BINDING oder WS_NAMEDPIPE_CHANNEL_BINDING.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine ULONG.

Der -Eigenschaftswert enthält eine Reihe von Flags (siehe WS_URL_MATCHING_OPTIONS), die
Geben Sie an, wie die URL im WS_TO_HEADER aller empfangenen Nachrichten zugeordnet werden soll.


Der Standardwert lautet:



syntax<br><br>WS_MATCH_URL_THIS_HOST |<br>WS_MATCH_URL_EXACT_PATH |<br>WS_MATCH_URL_PORT |<br>WS_MATCH_URL_NO_QUERY<br><br>
WS_LISTENER_PROPERTY_TRANSPORT_URL_MATCHING_OPTIONS
Wert: 12
Wird mit WsCreateListener für WS_TCP_CHANNEL_BINDING oder verwendet.
WS_HTTP_CHANNEL_BINDING.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine ULONG.

Der -Eigenschaftswert enthält eine Reihe von Flags (siehe WS_URL_MATCHING_OPTIONS), die
Geben Sie an, wie die Transport-URL aller akzeptierten Kanäle zugeordnet werden soll. Siehe
WS_CHANNEL_PROPERTY_TRANSPORT_URL weitere Informationen zur Transport-URL.


Der Standardwert lautet:



syntax<br><br>WS_MATCH_URL_THIS_HOST |<br>WS_MATCH_URL_EXACT_PATH |<br>WS_MATCH_URL_PORT |<br>WS_MATCH_URL_NO_QUERY<br><br>

Diese Eigenschaft steuert die Überprüfung der Nachricht erst, nachdem sie empfangen wurde.
durch den Prozess, nicht durch das Routing der Nachricht an den Prozess (das bestimmt wird)
durch die AN WsOpenListener übergebene URL).
WS_LISTENER_PROPERTY_CUSTOM_LISTENER_CALLBACKS
Wert: 13
Wird mit WsCreateListener für WS_CUSTOM_CHANNEL_BINDING verwendet.


Das begleitende Wertelement der WS_LISTENER_PROPERTY-Struktur ist eine WS_CUSTOM_LISTENER_CALLBACKS-Struktur .

Diese Eigenschaft wird verwendet, um Rückrufe anzugeben, die
definieren Sie die Implementierung eines benutzerdefinierten Listeners.


Diese Eigenschaft muss angegeben werden, wenn WS_CUSTOM_CHANNEL_BINDING verwendet wird.
WS_LISTENER_PROPERTY_CUSTOM_LISTENER_PARAMETERS
Wert: 14
Wird mit WsCreateListener für WS_CUSTOM_CHANNEL_BINDING verwendet.


Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein Zeiger auf einen Datentyp mit beliebiger Größe.
Die Größe der Eigenschaft ist die Größe des Datentyps.


Diese Eigenschaft wird verwendet, um Parameter anzugeben, die zum Erstellen des benutzerdefinierten
Listenerimplementierung.


Der Wert dieser Eigenschaft wird an den übergeben.
WS_CREATE_LISTENER_CALLBACK.


Wenn diese Eigenschaft nicht angegeben wird, ist ihr Wert NULL und die Größe null.
WS_LISTENER_PROPERTY_CUSTOM_LISTENER_INSTANCE
Wert: 15
Wird mit WsGetChannelProperty für WS_CUSTOM_CHANNEL_BINDING verwendet.


Der begleitende Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein void* und die Größe der Eigenschaft ist sizeof(void*).

Der -Wert
entspricht dem listenerInstance-Wert, der von zurückgegeben wird.
WS_CREATE_LISTENER_CALLBACK.


Diese Eigenschaft kann verwendet werden, um den zugrunde liegenden Listener abzurufen.
instance für einen benutzerdefinierten Listener. Dadurch kann ein Aufrufer direkt
Interaktion mit dem instance für Fälle, in denen die vorhandene
Der Satz von Listenereigenschaften oder Listenerfunktionen reicht nicht aus.
WS_LISTENER_PROPERTY_DISALLOWED_USER_AGENT
Wert: 16
Wird mit WsCreateListener für WS_HTTP_CHANNEL_BINDING verwendet.


Der zugehörige Wertmember der WS_LISTENER_PROPERTY-Struktur ist ein Zeiger auf WS_DISALLOWED_USER_AGENT_SUBSTRINGS , der die Liste der unzulässigen Benutzer angibt.
Agents-Unterzeichenfolgen.

  • Beim Empfang der HTTP-Anforderung wird der UserAgent-Headerwert extrahiert.

  • Jede Unterzeichenfolge in der Liste wird im extrahierten UserAgent-Zeichenfolgenwert durchsucht.

  • Wenn die Teilzeichenfolge gefunden wird, wird die Anforderung abgelehnt.




Die Liste enthält standardmäßig den folgenden Eintrag.

  • Webbrowser(n): Mozilla




Diese Eigenschaft gilt nicht für Listener, die mit WS_ENCODING_RAW-Codierung konfiguriert sind.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Kopfzeile webservices.h