- Es requerido utilizar un servicio REST para poder hacer una llamada ajax a un servicio WCF (por ejemplo: mediante el uso de
WebInvoke
atributo en la Operación contratos) - Una vez que se realiza un servicio RESTful agregando un enlace
webHttp
en el host de servicio, ¿puede el host tener otros puntos finales también? (wsHttp
onetTcp
) - ¿Es requerido que el
aspNetCompatibilityEnabled
establecer en cierto para un servicio que tiene la unión webHttp (y puede esta coexisten escenario de otros criterios de valoración) - entiendo que puedo utilizar tanto jQuery y
ScriptManager
de hacer llamadas WCF en el cliente. ¿Por qué debería usar uno sobre el otro?
Respuesta
Respuestas
Nº
AJAX se utiliza normalmente para el envío de GET HTTP sencilla ("descanso") peticiones. No tiene que ser así. También puede formatear una carga utilizando un sobre SOAP y POST al punto final. En ese caso, el servicio WCF tendría que serwsHttp
o BasicHttpBinding, al menos. Aquí está an example of using VBScript to create and send a SOAP request, pero podría hacer lo mismo en Javascript. No puede usar las extensiones SOAP más avanzadas, como WS-Security, XML DigSig, etc. Bueno, podría, pero sería poco práctico. Por ejemplo, no conozco ninguna biblioteca de canonicalización XML en Javascript, que es esencial para hacer WS-Security o firmas digitales. Hay 17 obstáculos similares. Resultado: no puede usar las extensiones SOAP más avanzadas cuando llama desde JavaScript.
.
Si usa jQuery ajax, necesitará usar la devolución de llamadabeforeSend
en la solicitud ajax para establecer el encabezado SOAPAction.
.
Habiendo dicho eso, es mucho más fácil procesar json en un programa de Javascript, que recorrer el DOM de un documento XML. En otras palabras, es mejor que uses JSON/REST cuando te conectes de Javascript a WCF, en lugar de SOAP. A veces no es una opción, supongo.Sí
servicio Un WCF puede tener varios puntos finales y se puede escuchar en el mismo o diferentes transportes como HTTP, net.tcp, net.pipe o net.msmq.No.
aspNetCompatibilityEnabled
solo habilita algunas características similares a ASMX en el servidor. Afecta la forma en que se diseña el servicio, y es independiente de la firma del mensaje. Impide el uso de protocolos que no sean HTTP. Para más información sobre esto, vea Wenlong Dong's article.en cuanto a qué marco usar en el cliente, ¿cuál es más fácil? No tengo experiencia con ScriptManager, pero el criterio de decisión es bastante simple. jQuery funciona bien, y es apropiado si ya usas jQuery. Si no tiene o no quiere jQuery, puede usar XmlHttpRequest para enviar solicitudes SOAP o REST. Si esos son de alguna manera inapropiados, use algo más.
- 1. Realización de una llamada curvatura en C#
- 2. Problema con la llamada POSTE de ajax al servicio WCF
- 3. Llamada Jquery/Ajax con temporizador
- 4. llamada de método Ajax
- 5. jquery validación con llamada ajax
- 6. jQuery $ .ajax llamada al servicio WCF regresa 400 Bad Request
- 7. Implementación de una llamada ajax en clojurescript
- 8. adjunto de retorno con $ .ajax llamada
- 9. AJAX llamada de dominio cruzado
- 10. Retorno de llamada asincrónico WCF
- 11. Detectar URL de llamada Ajax
- 12. llamada jQuery/AJAX con un temporizador
- 13. Funciones de devolución de llamada de javascript con ajax
- 14. básico "crudo" Ajax llamada
- 15. POST versus llamada Ajax
- 16. Destello - Llamada AJAX
- 17. Detectar llamada ajax, ASP.net
- 18. 500 System.ServiceModel.ServiceActivationException al realizar una llamada Ajax para el servicio WCF resto
- 19. Realización de una solicitud HTTP POST con Arduino
- 20. Mostrar progreso durante una larga llamada Ajax
- 21. Función de devolución de llamada para JSONP con JQuery ajax
- 22. WCF: Problemas con las devoluciones de llamada unidireccionales
- 23. Realización de expresiones regulares en una secuencia
- 24. ¿Cuál es la duración de una llamada de Ajax?
- 25. Devolución de la respuesta de una llamada Jquery AJAX
- 26. Rieles: Representación de un js.erb través de una llamada AJAX
- 27. Devolución de llamada después de ajax cargando una pestaña
- 28. devoluciones de llamada de Ajax en rails3
- 29. volver AJAX de devolución de llamada volver
- 30. Ajax llamada no trabaja extensión de cromo con v2 manifiesta
@Cheeso - Si utilizo jQuery en el cliente para hacer una llamada AJAX, supongo que la respuesta para (1) será sí, ya que ahora tengo de usar JSON como la respuesta y esto puede hacerse al aplicar el atributo WebGet y cambiar RequestFormat a Json?¿No sería esto esencialmente convertir este servicio en uno RESTful? – DotnetDude
No. puede usar jQuery ajax y especificar dataType = 'xml', para indicar el tipo de datos que espera del servidor. Si se trata de XML, jQuery no evaluará automáticamente la respuesta como un valor json. – Cheeso