Compartir a través de


Estado de usuario del host de servicio

El host de servicio permite que una aplicación asocie los datos de estado que se limitan al nivel de host de servicio. Este estado se especifica mediante una estructura de WS_SERVICE_PROPERTY que se pasa a la función WsCreateServiceHost cuando la aplicación crea un host de servicio, como se muestra en el ejemplo siguiente.

void* quotePtr = (void*) quotes;
WS_SERVICE_PROPERTY serviceProperties[1] = {0};
serviceProperties[0].id = WS_SERVICE_PROPERTY_HOST_USER_STATE;
serviceProperties[0].value = &quotePtr; // assume this is some state that you want to associate with the service host
serviceProperties[0].valueSize = sizeof(quotePtr);

Los datos de estado están disponibles para todas las devoluciones de llamada del host de servicio y las operaciones de servicio. Las devoluciones de llamada y las operaciones de servicio recuperan la información llamando a la función WsGetOperationContextProperty y especificando el contexto, al que hace referencia la estructura WS_OPERATION_CONTEXT y la propiedad del contexto, como uno de los valores de la enumeración WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, como se muestra en el ejemplo siguiente.

QuoteTable* table = NULL;
HRESULT hr = NOERROR;
if (FAILED (WsGetOperationContextProperty (context, WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, &table, sizeof(table), NULL, error)))
    return hr;