WinInet no es compatible con un servicio o una aplicación IIS
Importante
La aplicación de escritorio Internet Explorer 11 está retirada y sin soporte a partir del 15 de junio de 2022 para determinadas versiones de Windows 10.
Todavía puede acceder a sitios antiguos heredados que requieren Internet Explorer con el modo Internet Explorer en Microsoft Edge. Obtenga más información.
La aplicación de escritorio Internet Explorer 11 se redirigirá progresivamente al explorador Microsoft Edge, más rápido y seguro. En última instancia, se deshabilitará a través de Windows Update. Deshabilite IE hoy.
Las funciones de Internet de Microsoft Win32 (exportadas desde WinInet.dll) no se admiten cuando se ejecutan desde un servicio o una aplicación de Internet Information Server (IIS) (también un servicio). En este artículo se describe el uso de WinInet.dll en un servicio o en aplicaciones de IIS.
Versión del producto original: Internet Explorer
Número KB original: 238425
Más información
Como IIS es un servicio, tendrá el mismo conjunto de problemas que ejecutan WinInet en una extensión de La interfaz de programa de aplicaciones de Internet Server (ISAPI) o en un DLL COM (DLL ActiveX que usa páginas Active Server (ASP) que en la ejecución de WinInet en un servicio. Ejecutar WinInet en una aplicación IIS también tiene un conjunto único de problemas.
El problema con la ejecución de WinInet en un servicio es que WinInet usa la configuración del Registro para información SSL, información de proxy y mucho más. Los servicios no cargan el HKEY_CURRENT_USER subárbol del Registro, por lo que esta información no está disponible.
Advertencia
Microsoft no admite el uso de API de WinInet en el contexto de un servicio del sistema.
Las API de WinInet informan de infracciones de acceso cuando se usan desde el servicio a través de SSL con Internet Explorer 5.0 instalado.
Para comprender las limitaciones exclusivas del uso de WinInet en un entorno de servidor, es necesario comprender el historial de WinInet. WinInet se desarrolló para su uso por Internet Explorer. De hecho, para usar versiones posteriores de WinInet, debe cargar una instalación mínima de Internet Explorer. WinInet también expone las API para su uso por otras aplicaciones cliente que desean tener acceso a recursos en Internet (o intranet). Es importante reconocer el entorno en el que WinInet se desarrolló y probó para comprender el uso adecuado para la DLL. WinInet se desarrolló para su uso en un entorno cliente. Aunque sigue actuando como cliente cuando se ejecuta en una DLL isapi, en este caso se está ejecutando en un entorno de servidor.
Entorno de cliente: una persona que ejecuta Internet Explorer
- Número relativamente bajo de solicitudes
- Solicitudes realizadas relativamente consecutivamente
- La duración de la aplicación host es corta (duración de la sesión del explorador)
Entorno de servidor: un servidor web (como https://www.microsoft.com )
- Alto número de solicitudes por segundo
- Varios subprocesos que hacen solicitudes simultáneamente
- Debe ejecutarse durante semanas o meses
La solución preferida es usar WinHttp, que está diseñado para ejecutarse en un entorno de servicio, y como es una pila HTTP del lado servidor, no está enlazada al límite de conexión que impone RFC 2616 que las pilas HTTP del lado cliente. Este conjunto de API es similar en uso a WinInet, por lo que a los familiares de WinInet les será fácil adaptarse.
Otra solución es usar sockets directamente el SDK de plataforma incluye un ejemplo que muestra cómo usar WinSock a través de SSL. Encontrará un ejemplo en la \Microsoft Platform SDK\Samples\Winbase\Security\Ssl carpeta del SDK.
Otro problema que debe tener en cuenta al usar WinInet en un entorno de servidor es el límite de dos conexiones impuesto por Internet Explorer.
Aunque es posible usar WinInet en un servicio y en un entorno de servidor, no se recomienda ni es compatible con Microsoft. WinInet no se ha probado en esta configuración y existen problemas.