Compartir a través de


Seguimiento de solicitudes HTTP

El seguimiento de solicitudes HTTP es una característica de IIS que proporciona una manera de determinar qué sucede exactamente con una solicitud. Esto incluye cualquier forma de autenticación, qué controlador se usó y cuánto tiempo se llevó a cabo cada paso en la canalización. Habilitar el seguimiento de solicitudes es una manera útil de diagnosticar un comportamiento inesperado o no deseado.

Configuración de características (/api/webserver/http-request-tracing)

La característica de seguimiento de solicitudes HTTP crea archivos de seguimiento basados en un conjunto configurado de reglas. La información de los archivos de seguimiento viene determinada por qué proveedores son avaialables para esa regla. La configuración de características para el seguimiento de solicitudes se ocupa de la generación de los archivos de seguimiento.

GET/api/webserver/http-request-tracing/{request-tracing-id}

{
    "id": "{request-tracing-id}",
    "scope": "",
    "metadata": {
        "is_local": "true",
        "is_locked": "false",
        "override_mode": "inherit",
        "override_mode_effective": "allow"
    },
    "enabled": "true",
    "directory": "%SystemDrive%\\inetpub\\logs\\FailedReqLogFiles",
    "maximum_number_trace_files": "50",
    "website": null,
    "_links": {
        "providers": {
            "href": "/api/webserver/http-request-tracing/providers?http_request_tracing.id={request-tracing-id}"
        },
        "rules": {
            "href": "/api/webserver/http-request-tracing/rules?http_request_tracing.id={request-tracing-id}"
        }
    }
}

Proveedores de seguimiento (/api/webserver/http-request-tracing/providers)

Los proveedores para el seguimiento de solicitudes HTTP determinan qué información se proporcionará cada vez que se desencadene una regla de seguimiento. IIS incluye un conjunto de proveedores predeterminados que proporcionan la mayor parte de la información que deseará un consumidor.

GET/api/webserver/http-request-tracing/providers/{provider-id}

{
    "name": "ASPNET",
    "id": "{provider-id}",
    "guid": "{aff081fe-0247-4275-9c4e-021f3dc1da35}",
    "areas": [
        "Infrastructure",
        "Module",
        "Page",
        "AppServices"
    ],
    "request_tracing": {
        "id": "{request-tracing-id}",
        "scope": "",
        "_links": {
            "self": {
                "href": "/api/webserver/http-request-tracing/{request-tracing-id}"
            }
        }
    }
}

Reglas de seguimiento (/api/webserver/http-request-tracing/rules)

Las reglas de seguimiento generan registros de seguimiento de solicitudes cada vez que se ejecuta una solicitud que cumple las condiciones especificadas en la regla de seguimiento. Las reglas de seguimiento pueden desencadenarse en función del código de estado, el tiempo de ejecución y la ruta de acceso.

GET/api/webserver/http-request-tracing/rules/{rule-id}

{
    "path": "*",
    "id": "{rule-id}",
    "status_codes": [
        "101-999"
    ],
    "min_request_execution_time": "2147483647",
    "event_severity": "ignore",
    "custom_action": {
        "executable": "",
        "params": "",
        "trigger_limit": "1"
    },
    "traces": [
        {
            "allowed_areas": {
                "Authentication": "true",
                "Security": "true",
                "Filter": "true",
                "StaticFile": "true",
                "CGI": "true",
                "Compression": "true",
                "Cache": "true",
                "RequestNotifications": "true",
                "Module": "true",
                "FastCGI": "true",
                "WebSocket": "true"
            },
            "provider": {
                "name": "WWW Server",
                "id": "{provider-id}",
                "_links": {
                    "self": {
                        "href": "/api/webserver/http-request-tracing/providers/{provider-id}"
                    }
                }
            },
            "verbosity": "warning"
        }
    ],
    "request_tracing": {
        "id": "{request-tracing-id}",
        "scope": "",
        "_links": {
            "self": {
                "href": "/api/webserver/http-request-tracing/{request-tracing-id}"
            }
        }
    }
}

Crear una regla de seguimiento de solicitudes

Una regla de seguimiento de solicitudes debe especificar a qué sección de seguimiento de solicitudes pertenece cuando se crea y también debe especificar los proveedores que deben registrar información para el archivo de registro generado. En este ejemplo se crea una regla que solo genera registros de seguimiento para las solicitudes a index.html. Los registros incluirán información del proveedor de seguimiento de servidor WWW.

POST/api/webserver/http-request-tracing/rules

{
    "path": "index.html",
    "status_codes": [
        "100-999"
    ],
    "traces": [
        {
            "allowed_areas": {
                "Authentication": "true",
                "Security": "true",
                "Filter": "true",
                "StaticFile": "true",
                "CGI": "true",
                "Compression": "true",
                "Cache": "true",
                "RequestNotifications": "true",
                "Module": "true",
                "FastCGI": "true",
                "WebSocket": "true"
            },
            "provider": {
                "id": "{www-server-provider-id}"
            },
            "verbosity": "warning"
        }
    ],
    "request_tracing": {
        "id": "{request-tracing-id}"
    }
}

Registros de seguimiento (/api/webserver/http-request-tracing/traces)

La API de administración de Microsoft IIS proporciona un punto de conexión para ver los datos de los registros de seguimiento que se han generado. Esta información ayuda a determinar rápidamente qué archivo de seguimiento es de interés en lugar de tener que abrir cada archivo individualmente.

GET/api/webserver/http-request-tracing/traces/{trace-id}

{
    "id": "{trace-id}",
    "url": "http://localhost:80/favicon.ico",
    "method": "GET",
    "status_code": "404",
    "date": "2017-03-02T15:34:17.0627155-08:00",
    "time_taken": "0",
    "process_id": "8172",
    "activity_id": "{8000009D-0001-F700-B63F-84710C7967BB}",
    "file_info": {
        "name": "fr000001.xml",
        "id": "{file-id}",
        "type": "file",
        "physical_path": "c:\\inetpub\\logs\\FailedReqLogFiles\\W3SVC1\\fr000001.xml",
        "_links": {
            "self": {
                "href": "/api/files/{file-id}"
            }
        }
    },
    "request_tracing": {
        "id": "{request-tracing-id}",
        "scope": "Default Web Site/",
        "_links": {
            "self": {
                "href": "/api/webserver/http-request-tracing/{request-tracing-id}"
            }
        }
    }
}