9 votos

Registros de IIS mostrar el estado de win32 de sc = 64 pero sólo a través de algunas redes

Tengo una ASP.NET aplicación que se ejecuta en un servidor de cliente (W2k3, IIS6, .NET 2.0). FWIW, esta es una Prueba de instancia, que no se ha movido en la Producción todavía. Por lo que no se está ejecutando bajo SSL, equilibrio de carga, etc.

Cuando accedo a una de las páginas de su servidor de nuestra oficina, la página se golpeó una vez. La inspección de los registros de IIS (c:WINDOWS\system32\LogFiles\W3SVC1) muestran un OBTENER de esa página, luego presiono un botón en la página y el archivo de registro muestra un POST. Esto parece estar funcionando bien hasta ahora.

Ahora, cuando me mando a distancia en la red del cliente y acceder a la página de uno de sus máquinas locales, el archivo de registro muestra a OBTENER, a continuación, empuje el botón en la página y muestra el registro de dos Puestos en el mismo segundo. La primera muestra el estado (sc-estado, sc-subestado, sc-win32-estado) 200 0 64, el segundo muestra 200 0 0.

En el archivo de registro, tanto los POSTs son idénticos. Básicamente, el registro se parece a esto (excepto yo ocultado algunos de los datos):

#Campos: fecha hora s-ip cs-método cs-uri-madre cs-uri-consulta s-puerto cs-nombre de usuario c-ip cs(Agente de Usuario) sc-estado de sc-subestado sc-win32-estado 
2009-08-11 20:19:32 x.x.x.x GET /Archivo.aspx - 80 - y.y.y.y Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.0;+WOW64;+Trident/4.0;+SLCC1;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.21022;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30618;+MDDR;+OfficeLiveConnector.1.4;+OfficeLivePatch.0.0) 200 0 0
2009-08-11 20:19:45 x.x.x.x POST /Archivo.aspx - 80 - y.y.y.y Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.0;+WOW64;+Trident/4.0;+SLCC1;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.21022;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30618;+MDDR;+OfficeLiveConnector.1.4;+OfficeLivePatch.0.0) 200 0 64
2009-08-11 20:19:45 x.x.x.x POST /Archivo.aspx - 80 - y.y.y.y Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.0;+WOW64;+Trident/4.0;+SLCC1;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.21022;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30618;+MDDR;+OfficeLiveConnector.1.4;+OfficeLivePatch.0.0) 200 0 0

El problema es, la página es conseguir golpeado dos veces. La base de datos realiza una operación para la primera solicitud, a continuación, la segunda solicitud detecta que un duplicado de la operación se realiza y lanza un mensaje de error. Los usuarios piensan que su funcionamiento no, pero es que realmente sucedió.

La descripción del error de sc-win32-estado de 64 es: "El nombre de red especificado ya no está disponible." Esto me lleva a creer que, dado que ambas peticiones POST a mostrar un estado HTTP 200, que el servidor tiene éxito en el servicio a la solicitud, pero el cliente nunca se notifica y vuelve a enviar la solicitud.

  • ¿Cómo puedo solucionar esto?

  • Alguna idea de lo que podría ser la causa de este comportamiento en su red interna?

  • Debo mencionar, que esto está sucediendo a dos sitios de los clientes, pero ¿ no sucede en seis de nuestros otros sitios del cliente, o en nuestra oficina, o la conexión a cualquiera de nuestras ocho clientes a través de la web.

  • ¿Qué podría estar haciendo este reproducible 100% del tiempo en su red local, pero 0% del tiempo en cualquier otro lugar?

Actualización: he encontrado un número muy pequeño de la duplicación de solicitudes POST había sc-win32-estado de 995 en vez de 64 como se informó originalmente. La descripción del error de sc-win32-status=995 es: "La operación de e/S se ha anulado debido a una salida de subproceso o una solicitud de aplicación." Esto no tiene ningún sentido (teniendo en cuenta que tengo acceso completo al código). Todavía no entiendo cómo o por qué se está produciendo este problema, pero el nuevo código de error me lleva a creer que no puede ser un problema de la red después de todo, y ahora estoy investigando la posibilidad de un código aleatorio de error.

13voto

ocram Puntos9992

Este es mi entendimiento de la cuestión hasta el momento:

  • sc-win32-estado de 64 significa "El nombre de red especificado ya no está disponible."
  • Después de IIS ha enviado la respuesta final para el cliente, normalmente, se espera un mensaje de CONFIRMACIÓN del cliente.
  • A veces los clientes se restablece la conexión, en lugar de enviar la CONFIRMACIÓN final de nuevo al servidor. Esto no es una graciosa conexión estrecha, por lo que los registros de IIS el "64" de código.
  • Muchos clientes se restablece la conexión cuando se hace con ella, para liberar el zócalo en lugar de dejarlo en TIME_WAIT/CLOSE_WAIT.
  • Proxies tienden a hacerlo más que otros.

Actualización: he encontrado algo de información interesante aquí y aquí, así que, básicamente, re-escribió la página para asegurarse de que no había ningún mal marcado, etc. y... el problema es que ahora se ha ido! Era sólo un disparo en la oscuridad, y yo no podía decir definitivamente qué fue lo que solucionó el problema, ya que es sólo afectan a algunos de nuestros clientes bajo algunas circunstancias muy concretas...

1voto

Aidanc Puntos133

He experimentado este mismo problema cuando intenta servir en formato gzip, los archivos binarios de IIS6 a través de un servidor proxy. Yo no estaba experimentando cualquier problema al ir a la página web directamente.

He encontrado esta fue la causa en mi caso, mediante la ejecución de "el Violinista en una máquina cliente y la inspección de la respuesta. El violinista advierte que la respuesta se codifica y luego se queja de que el número mágico en el gzip archivo no era correcta.

Apagué la compresión gzip para archivos binarios en mi código y la cuestión se detuvo ocurriendo.

0voto

Warren Blanchet Puntos881

¿Sólo un pensamiento, pero esto también sucede si uno de los usuarios es hacerlo físicamente mientras que en la misma máquina? Pienso que tal vez hay clics extraños pasando por tu sesión remota. ¿Lo que hace lo mismo si ficha al botón y activar pulsando entrar?

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;