El servicio de devolución de llamadas asíncronas del servicio web causó un error en el enlace de datos, lo que provocó problemas en el servidor

  

El viernes pasado, después de los incansables esfuerzos, finalmente se actualizó el sitio. Una vez completada la actualización, serán más de las cuatro de la mañana. Pensé que estaría bien apoyarlo por unos días. No esperaba que el director técnico llamara esta mañana, w3p.exe se recicla con frecuencia y la visita al sitio web es muy lenta. De ninguna manera, volver a la empresa para encontrar la razón.
Después de regresar a la compañía, finalmente, a través de la prueba de esfuerzo de una página con el gerente de desarrollo, descubrí que podría deberse a un problema con el nuevo método de devolución de llamada asíncrono del servicio web. A menudo hay un error de error de enlace de datos, y habrá un error de enlace en aproximadamente 3 minutos. Los errores frecuentes de la aplicación pueden consumir en gran medida los recursos del servidor.
Después de cambiar el método de devolución de llamada asíncrono, relanzar y probar. Descubrí que no ocurrieron errores similares, y la velocidad de acceso a la página del sitio web fue mucho más rápida.
Después del análisis del administrador de desarrollo, la causa principal de este problema se debe al método de devolución de llamada asíncrona. Las razones específicas quedan por continuar.

Aprende mirando las referencias relevantes. Hay una diferencia entre síncrono y asíncrono: el subproceso principal y el subproceso de fondo. El subproceso principal está relacionado con la interfaz de usuario y se utiliza para actualizar la página y vincular los datos. La llamada asíncrona es un subproceso en segundo plano, que no puede actualizar la página y el origen de datos. Si desea realizar la función de enlace asíncrono, debe controlar el subproceso.

La razón principal de los problemas anteriores que encontramos es que

el subproceso de fondo de la aplicación no interactúa directamente con la interfaz de usuario de la aplicación, que es fundamental. Si un hilo de fondo intenta modificar un control en la interfaz de usuario de la aplicación, el control puede estar en un estado desconocido. Esto puede causar problemas importantes en la aplicación y es difícil de diagnosticar. Por ejemplo, cuando otro hilo está transmitiendo nuevos datos a un mapa de bits generado dinámicamente, es posible que no pueda mostrarlo. O, cuando el conjunto de datos se está actualizando, los componentes que están vinculados al conjunto de datos pueden mostrar información conflictiva.

Puede encontrar más referencias en:

http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/SCArchDeGuide/Chapter6UsingMultThr.mspx?mfr=true


Copyright © Conocimiento de Windows All Rights Reserved