|
En el desarrollo de un nuevo proyecto, utilizando la tecnología asp.net core, el viejo proyecto es probable que sea el uso de .net framework 4 desarrollo de servicios wcf, debido a la refactorización costo es demasiado alto, es necesario utilizar asp.net core para llamar a la interfaz de servicio wcf.
En primer lugar, crear un nuevo dos proyectos:
Proyecto ASP.NET Core 3.1: dotnet-core-call-wcf Proyecto de NET Framework 4 (aplicación de servicio WCF): schools-wcf-service.
Visual Studio 2019 quiere crear un servicio WCF, no encuentra una plantilla, solución:
Seleccione " Instalar más herramientas y características" para abrir el Instalador de Visual Studio.Seleccione la pestaña Componentes individuales, desplácese hasta Actividades de desarrollo y, a continuación, seleccione Windows Communication Foundation y haga clic en Modificar.
wcf Crear dos interfaces de la siguiente manera:
El código de implementación de la interfaz es el siguiente:
Un contrato de servicio es una colección de operaciones de servicio relacionadas, y cuando aplicamos el atributo ServiceContractAttribute sobre una interfaz, le damos la propiedad ServiceContract. Sin embargo, para un tipo de este tipo, su idiomática no se convierte automáticamente en una operación de servicio del contrato; sólo después de aplicar la propiedad OperationContractAttribute los miembros del método correspondiente pueden convertirse en operaciones de servicio a las que se puede acceder mediante llamadas de servicio.
Al iniciar un proyecto wcf se ejecutará automáticamente WcfTestClient e intentará llamar a lo siguiente:
Llamada a servicios WCF con un proyecto ASP.NET Core
Haga clic con el botón derecho en Servicios conectados, seleccione Agregar servicios conectados y seleccione Servicio WCF, como se muestra a continuación:
Dirección de servicio rellenar: http://localhost:3705/Service1.svc
Posible error:
WCF:Error:Imposible generar deps.json h ttps:// www.itsvse.com/thread-9288-1-1.html Dado que, no nos es posible escribir la dirección de servicio wcf a muerte, añadir el siguiente código al fichero appsettings.json:
Edita el fichero Startup.cs para registrar el servicio wcf con el siguiente código:
Llamar al servicio wcf en el controlador HomeController, primer constructor inyectado, código como el siguiente:
Llamada al servicio wcf:
Ejecutar el sitio web asp.net core como se muestra a continuación:
Intentamos modificar el servicio WCF para que la interfaz devuelva los resultados después de 3 minutos, luego reiniciamos asp.net core para llamar al servicio wcf, y el error se reporta de la siguiente manera:
AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to El tiempo asignado a esta operación puede haber sido una parte de un tiempo de espera más largo). En este punto, necesitamos cambiar el tiempo de espera por defecto y personalizar el binding BasicHttpBinding reeditando el archivo Startup.cs con la siguiente configuración:
Descarga el código fuente:
Invitado, si quieres ver el contenido oculto de este post por favor responde a |
Artículo anteriorAyuda con la corrupción del registro de WindowsArtículo siguiente: VS 2019 usando la herramienta svcutil.exe para generar archivo de llamada
|