2010-03-06 11 views
10

He intentado crear una aplicación de servicio web estable durante los últimos 2 o 3 meses. Hace aproximadamente 2 meses tomé la decisión de pasar a WCF para aprovechar los servicios web de instancia única.¿Alguna razón convincente para permanecer en WCF?

Desde que hice ese cambio, tuve algunos dolores de cabeza reales desplegándome en los escenarios de IIS 6. Desafortunadamente, la mayoría de los clientes reales todavía usan Windows Server 2003 e IIS 6. He estado recibiendo todos los errores de WCF que posiblemente pueda imaginar.

La paciencia del cliente se está agotando y pronto parecerá que no podemos ofrecer una solución confiable.

estoy casi decidido a regresar a los servicios ASMX que al menos trabajaban, y no sufren de cosas como:

La secuencia ha sido terminado por el extremo remoto. Se ha excedido el recuento de reintento máximo especificado por el usuario para un mensaje en particular. Debido a esto, la sesión confiable no puede continuar. La sesión confiable fue fallada.

El objeto de comunicación, System.ServiceModel.Channels.ReplyChannel, no se puede utilizar para la comunicación, ya que ha sido abortado

La lista es interminable ... antes de hacer el movimiento de vuelta a ASMX, son ¿Hay alguna razón de peso para seguir con WCF, porque a este ritmo podríamos perder grandes clientes con esta tecnología?

+0

intente autohospedar un servicio web ASMX; intente conectarse a una cola de mensajes de MSMQ; intente con TCP/IP en lugar de HTTP. ¡Buena suerte! –

+1

La cuestión es que no estoy probando WCF, claramente los diseñadores pensaban que los clientes usaran IIS7, ¡porque en IIS7 funciona como una bomba! Pero simplemente no creo que esté realmente orientado al alojamiento de IIS6. –

+0

@Marc s, no quiero hacer ninguna de esas cosas para esta implementación en la que estoy trabajando. Principalmente quiero lanzar una pieza de software que funciona de manera predecible. –

Respuesta

0

Ok, el movimiento de regreso a asmx está hecho. Debo decir que ya estoy mucho menos estresado.

Lo primero que noté fue que toda la configuración era mucho menos dolorosa. En una etapa, estaba pensando: "Ok, ahora necesito configurar el extremo del cliente", pero luego pensé: "Espera, nada que configurar".

Tuve 1 problema de tiempo de espera y no pude determinar dónde establecer el valor de tiempo de espera en config, entonces recordé "Hell es tan fácil como establecer Service.Timeout = -1" en el código.

Larga vida a asmx. ¡No necesita un Boeing 747 para cruzar el parque!

Finalmente descargo de responsabilidad: Implementé un servicio que podría tardar de 1 hora a 12 horas en ejecutarse. Si tuviera un servicio que estuviese extrayendo pequeños datos a varios clientes a la vez, creo que estaría bien con WCF.

+3

"Larga vida a ASMX"? Sabes que ya está muerto, ¿verdad? ¿Solo se reparan errores críticos, claramente documentados por Microsoft como una "tecnología heredada"? ¡Asegúrate de que tu gente de negocios no lea esta publicación! –

+0

@John - ¡Sí señor! Y, por cierto, gracias por sus excelentes respuestas hasta ahora sobre mis otras preguntas aquí y allá. ¡Realmente me ha ayudado mucho cuando estoy en un aprieto! –

7

Porque, eventualmente, los sitios se moverán a IIS7?

serio, si WCF fue construido para IIS7   parece funcionar mejor bajo IIS7 y no tiene problemas con el uso de WCF con IIS7, entonces la elección suena bastante simple. Quédese con WCF solo si el cliente tiene IIS7. De lo contrario, utilice la tecnología "anterior" con tecnología "anterior".

+2

o use autohospedaje para evitar cualquier problema relacionado con IIS en primer lugar ... –

+0

Respuesta aceptada. De 1 desarrollador a otro, evite hospedar WCF en IIS6 si tiene plazos estrictos y está presupuestando sus días hábiles. –

+0

En .NET 4 la configuración de WCF se ha mejorado significativamente. WCF 4 + IIS 7 prácticamente funcionará sin un web.config en absoluto. – Josh

Cuestiones relacionadas