soapcore net from consuming consume calling asp c# .net web-services soap .net-core

c# - net - soapcore



¿SOAP en.NET Core? (6)

¿Cómo haces SOAP en .NET Core? ¿Hay algún equivalente de Apache CXF en .Net Core (no solo un simple cliente SOAP sino una pila completa)?

Lo siento si esta es una pregunta muy básica, mi búsqueda hasta el momento no da una respuesta clara.


Aquí tiene un pequeño truco. Utilicé la orientación "framework 452" en una aplicación web ASP.Net 5.0.

Desafortunadamente, el nuevo "Agregar servicio conectado" -> "Servicio WCF" solo funciona cuando se dirige a ".Net Core" , así que creé una aplicación de consola básica con el mismo nombre que mi aplicación web.

Las aplicaciones de consola permiten agregar "Referencia de servicio" . Una vez agregado, VS2015 crea todas las referencias de servicio en la carpeta "Referencias de servicio" .

Simplemente mueva el contenido de la carpeta a la solución web y use un constructor cliente que acepte los parámetros HttpBindings y EndPoint .

En mi caso, me estoy conectando al cliente de inicialización del servicio Echosign de la siguiente manera:

using (EchoSignDocumentService16PortTypeClient service = new EchoSignDocumentService16PortTypeClient(new BasicHttpBinding(BasicHttpSecurityMode.Transport), new EndpointAddress(adddress))) { ... }


En VS 2017, a partir de diciembre de ''17 (v15.5) ahora puede agregar un cliente WCF generado a un servicio utilizando WSDL desde un proyecto estándar de .NET usando Servicios conectados. En el Explorador de soluciones, puede acceder allí haciendo clic con el botón derecho en "Dependencias" o haciendo clic con el botón derecho en el proyecto debajo de "Agregar ..."


Hace algunos meses, debido a una limitación que tienen los clientes de WCF (al integrarse con un servicio web de Java, alguien creó una clase de respuesta con el mismo nombre que el método y en el mismo espacio de nombres y cuando el cliente de WCF estaba enviando una solicitud, falló la serialización - no puedo encontrar la pregunta relacionada en SO) Tuve que crear un cliente HTTP SOAP que usara el subrayado del HttpClient. Finalmente, lancé una versión de código abierto ( https://github.com/gravity00/SimpleSOAPClient ) que estamos usando con éxito en la producción y que admite las aplicaciones .NET Core y Xamarin. Siéntase libre de probarlo. Recomiendo la versión 2.0.0-RC03 debido a algunas mejoras importantes desde la versión 1.x.


Necesito SOAP para mis clientes heredados, por lo que creé una biblioteca de SOAP que es compatible con mis clientes heredados, utilizando .NET Framework, alojado en un entorno separado. (SOAP.mywebsite.com). Luego, en www.mywebsite.com (creado con asp.net Core, tengo una interfaz de descanso. La capa SOAP llama a la interfaz de resto. La biblioteca para llamar a la interfaz de resto se genera mediante Swashbuckle.


Para solucionar este problema ... Creé un paquete nuget en .Net 4.5 que se conecta a clientes SOAP nativos que no son compatibles con .NET Core. A continuación, creé una aplicación central .Net dirigida al marco .net. Esto me permitió usar el paquete nuget sin errores.


Microsoft actualmente no planea enviar un marco del lado del servidor SOAP para .NET Core. Ni WCF ServiceHost ni ASMX están disponibles. Demasiado pronto para saber, cuál de las pilas que no son de Microsoft saltará y será el jugador dominante.

Con la introducción de la API web de ASP.NET y el levantamiento de los puntos finales REST, WCF estaba muerto. El cliente de WCF es una historia de interoperabilidad, no una historia progresiva (historia completa aquí: http://blog.tonysneed.com/2016/01/06/wcf-is-dead-long-live-mvc-6/ )