WS_SERVICE_MESSAGE_RECEIVE_CALLBACK Rückruffunktion (webservices.h)

Wird aufgerufen, wenn ein WS_MESSAGE auf einem Endpunkt empfangen wird, der mit einem WS_SERVICE_CONTRACT konfiguriert ist, für den defaultMessageHandlerCallback festgelegt ist.

Die eingehende WS_MESSAGE, der serviceProxy zusammen mit anderen Parametern wird dem Rückruf über WS_OPERATION_CONTEXT zur Verfügung gestellt.

Syntax

WS_SERVICE_MESSAGE_RECEIVE_CALLBACK WsServiceMessageReceiveCallback;

HRESULT WsServiceMessageReceiveCallback(
  [in]           const WS_OPERATION_CONTEXT *context,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR *error
)
{...}

Parameter

[in] context

Der Kontext , in dem dieser Rückruf aufgerufen wird.

[in, optional] asyncContext

Gibt an, ob der Rückruf asynchron ausgeführt werden kann.

[in, optional] error

Gibt an, wo zusätzliche Fehlerinformationen gespeichert werden sollen, wenn die Funktion fehlschlägt.

Rückgabewert

Diese Rückruffunktion gibt keinen Wert zurück.

Hinweise

Wenn diese Definition definiert ist, würde der Rückruf alle Parallelität in einem sitzungsbasierten Kanal nicht zulassen. Wenn Parallelität in einem sitzungsbasierten Kanal wünschenswert ist, sollte eine Anwendung nicht WS_SERVICE_MESSAGE_RECEIVE_CALLBACK auf dem WS_SERVICE_CONTRACT definieren.

Zum Zeitpunkt des Aufrufs des Rückrufs hat das Dienstmodell WsReadMessageStart für die empfangende WS_MESSAGE ausgeführt. Es liegt in der Verantwortung der Anwendung, die WS_SERVICE_MESSAGE_RECEIVE_CALLBACK implementiert, den Text zu verarbeiten und den WsReadMessageEnd-Vorgang auszuführen.

Wenn der Rückruf fehlschlägt, wird der zugrunde liegende Kanal abgebrochen.

Siehe auch UnTypedServiceExample

Beispiele

Definieren einer WS_SERVICE_MESSAGE_RECEIVE_CALLBACK


// Method contract for the service
static WS_SERVICE_CONTRACT calculatorContract = 
{
    NULL, 
    NULL, 
    DefaultMessageHandlerCallback, // WS_SERVICE_MESSAGE_RECEIVE_CALLBACK
    NULL
};

Zugreifen auf die eingehende WS_MESSAGE-Eigenschaft

HRESULT CALLBACK MessageRecieved(const WS_OPERATION_CONTEXT* context, const WS_ASYNC_CONTEXT* asyncContext, WS_ERROR* error)
{
    :
    hr = WsGetOperationContextProperty(context, WS_OPERATION_CONTEXT_PROPERTY_INPUT_MESSAGE, &requestMessage, sizeof(requestMessage), NULL, error);
    :
}

Anforderungen

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