Web de Referencia frente a Servicio de Referencia


Acabo de golpear una enorme pared de ladrillo con Paypal. Había creado un proyecto regular de C# para crear algunas clases wrapper usando su WSDL.

Si crea un proyecto no web, la única opción que obtiene para agregar un wsdl es una Referencia de Servicio Web. Y esto construye un poco el mismo conjunto de clases proxy como una referencia Web, pero no really..it añade más que incluso los chicos de PayPal no son conscientes de.

Así que todo este tiempo estaba buscando la interfaz correcta en esta lista de clases proxy para utilizar como el servicio (SoapBinding) y el PayPalAPIAASoapBinding no estaba allí me mantuve diciendo a nuestro punto de contacto de PayPal.

Solo pude ver las siguientes 2 Interfaces que me parecían lo que necesitaba usar ya que no vi un PayPalAPIAASoapBinding que se puede ver en una referencia de servicio basada en referencia Web:

PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient 

Así que me di cuenta oh, probablemente había creado una Referencia de Servicio vs.una Referencia Web que la Referencia Web es una opción en un proyecto Web. Pero no quiero que mi referencia de servicio esté bien acoplada a mi proyecto web. Por eso creé el proyecto C#.

Entonces, ¿qué diablos es una Referencia de Servicio vs. Referencia Web? ¿Y cómo se supone que separe esto en otro proyecto si la Referencia de Servicio me va a lanzar un bucle y me dará un conjunto de interfaces diferentes que una Referencia Web?

También, para hacer las cosas aún MÁS confusas, VS 2008 tiene un proyecto de Aplicación de Servicio Web.

Entonces, ¿qué uso? Estamos usando el framework. NET 3.5 y estamos no listo para pasar a WCF. Entonces, ¿puedo usar la nueva Referencia de Servicio incluso si no uso WCF o qué? SI está utilizando. NET 3.5 y no WCF todavía y todavía desea hacer servicios web básicos, ¿todavía va a la ruta de Referencia de servicio y simplemente no utiliza el marco de WCF? Significado puede ser utilizado como una referencia Web. NET 2.0 todavía, solo que usted va a obtener una generación completamente diferente de la WSDL?

Author: PositiveGuy, 2010-01-29

4 answers

Add Web Reference es el estilo antiguo, obsoleto ASP.NET tecnología de servicios web (ASMX) (usando solo el XmlSerializer para sus cosas): si hace esto, obtiene un cliente ASMX para un servicio web ASMX. Puede hacer esto en casi cualquier proyecto (Aplicación Web, Sitio Web, Aplicación de consola, Winforms, lo que sea).

Add Service Reference es la nueva forma de hacerlo, agregando una referencia de servicio WCF, que le brinda un modelo de servicio mucho más avanzado y flexible que solo cosas viejas de ASMX.

Dado que no está listo para pasar a WCF, también puede agregar la referencia web de estilo antiguo, si realmente debe: cuando haga un "Agregar referencia de servicio", en el cuadro de diálogo que aparece, haga clic en el botón [Avanzado] en la esquina izquierda del botón:

texto alt

Y en el siguiente cuadro de diálogo que aparece, elija el botón [Agregar referencia web] en la parte inferior.

 195
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-27 14:40:27

Si entiendo bien tu pregunta:

Para agregar una Referencia de Servicio Web.net 2.0 en lugar de una Referencia de Servicio WCF, haga clic con el botón derecho en su proyecto y haga clic en 'Agregar referencia de servicio.'

Luego haga clic en "Avanzado".."en la parte inferior izquierda del diálogo.

Luego haga clic en "Agregar referencia web.."en la parte inferior izquierda del siguiente diálogo.

Ahora puede agregar una referencia web SOAP regular como está buscando.

 8
Author: Moose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-28 21:51:07

Agregar una referencia de servicio le permite crear un cliente WCF, que se puede usar para hablar con un servicio web normal siempre que use el enlace apropiado. Agregar una referencia web le permitirá crear solo una referencia de servicio web (es decir, SOAP).

Si está absolutamente seguro de que no está listo para WCF (realmente no sabe por qué), entonces debe crear una referencia de servicio web regular.

 4
Author: Otávio Décio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-28 21:33:54

Al final, ambos hacen lo mismo. Hay algunas diferencias en el código: Web Services no agrega un espacio de nombres raíz del proyecto, pero Service Reference agrega clases de servicio al espacio de nombres del proyecto. La clase ServiceSoapClient obtiene un nombre diferente, lo cual no es importante. Al trabajar con TFS prefiero usar Service Reference porque funciona mejor con el control de código fuente. Ambos funcionan con protocolos SOAP.

Me parece mejor usar la Referencia de servicio porque es nueva y, por lo tanto, será mejor mantenido.

 3
Author: user3628475,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-12 13:45:24