WinInet no se admite en un servicio o una aplicación IIS

Advertencia

Se ha programado la deshabilitación permanente de la aplicación de escritorio retirada y sin soporte de Internet Explorer 11 a través de una actualización de Microsoft Edge en ciertas versiones de Windows 10. Para obtener más información, consulte Preguntas frecuentes sobre la retirada de la aplicación de escritorio de Internet Explorer 11.

Microsoft Win32 Internet Functions (exportado desde WinInet.dll) no se admite cuando se ejecuta desde un servicio o desde una aplicación de Internet Information Server (IIS) (también un servicio). En este artículo se describe el uso de la WinInet.dll en un servicio o en aplicaciones IIS.

Versión original del producto: Internet Explorer
Número de KB original: 238425

Más información

Dado que IIS es un servicio, tendrá el mismo conjunto de problemas que la ejecución de WinInet en una extensión de interfaz de programa de aplicaciones de Internet Server (ISAPI) o en un archivo DLL COM (DLL de ActiveX usado por Active Server Pages (ASP) como en la ejecución de WinInet en un servicio. La ejecución de 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 obtener información ssl, información de proxy, etc. Los servicios no cargan el subárbol del HKEY_CURRENT_USER Registro, por lo que esta información no está disponible.

Advertencia

Microsoft no admite el uso de las API de WinInet en el contexto de un servicio del sistema.

Las API de WinInet notifican 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 fue desarrollado 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 que las usen otras aplicaciones cliente que deseen acceder a recursos en Internet (o intranet). Es importante reconocer el entorno en el que WinInet se desarrolló y probó con el fin de comprender el uso adecuado para el archivo DLL. WinInet se desarrolló para su uso en un entorno de cliente. Aunque sigue actuando como cliente cuando se ejecuta en un archivo DLL de ISAPI, en este caso se ejecuta en un entorno de servidor.

Entorno de cliente: una persona que ejecuta Internet Explorer

  • Número relativamente bajo de solicitudes
  • Solicitudes realizadas de forma relativamente consecutiva
  • La duración de la aplicación host es corta (longitud de la sesión del explorador)

Entorno del servidor: un servidor web (por ejemplo https://www.microsoft.com, )

  • Número elevado de solicitudes por segundo
  • Varios subprocesos que realizan 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, dado que es una pila HTTP del lado servidor, no está enlazada al límite de dos conexiones impuesto por RFC 2616 que las pilas HTTP del lado cliente. Este conjunto de API es similar en el uso a WinInet, por lo que a los familiares de WinInet les resultará fácil adaptarse.

Otra solución consiste en 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.