Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 63675|Respuesta: 8

[.NET Core] ASP.NET Core 3.1 Llamando a .NET 4.0 Servicios WCF

[Copiar enlace]
Publicado en 19/7/2020 22:18:08 | | | |
Al desarrollar un nuevo proyecto, utilizando asp.net tecnología central, el proyecto antiguo puede ser un servicio WCF desarrollado usando el .NET Framework 4, debido a que el coste de reconstrucción es demasiado alto, por lo que es necesario usar asp.net núcleo para llamar a la interfaz de servicio WCF.

Primero, crea dos nuevos proyectos:

ASP.NET proyecto Core 3.1: dotnet-core-call-wcf
Proyecto .NET Framework 4 (aplicación de servicio WCF): schools-wcf-service

Visual Studio 2019 quiere crear un servicio WCF, no encuentro la plantilla, solución:

Selecciona Instalar más herramientas y funciones para abrir el instalador de Visual Studio. Selecciona la pestaña Componentes Individuales, desplázate hacia abajo hasta Actividades de Desarrollo, selecciona Windows Communication Foundation y haz clic en Modificar.


WCF crea dos interfaces de la siguiente manera:

El código de implementación de la interfaz es el siguiente:


Un contrato de servicio es un conjunto de operaciones de servicio relacionadas, y cuando aplicamos un Atributo de Contrato de Servicio en una interfaz, le damos un atributo de contrato de servicio. Sin embargo, para este tipo, su modismo no se convierte automáticamente en una operación contractual de servicio, y solo cuando se aplica la característica OperationContractAttribute puede el miembro correspondiente del método convertirse en una operación de servicio a la que se pueda acceder mediante llamada de servicio.

Cuando inicies el proyecto wcf, ejecutará automáticamente WcfTestClient e intentará llamarlo como se muestra en la figura de abajo:



Utilizar ASP.NET proyectos Core para llamar a servicios WCF

Haz clic derecho en Servicios Conectados, selecciona el servicio al que quieres añadir una conexión y selecciona el servicio WCF, como se muestra en la siguiente imagen:



Dirección de servicio cubierta: http://localhost:3705/Service1.svc

Posibles errores:

WCF:Error:Unable to generate deps.json
https://www.itsvse.com/thread-9288-1-1.html

Dado que es imposible escribir la dirección de servicio WCF hasta la última hora, añade el siguiente código al archivo appsettings.json:

Edita el archivo Startup.cs y registra el servicio WCF con el siguiente código:

Llama al servicio wcf en el controlador HomeController, primera inyección de constructor, el código es el siguiente:

Llamando al servicio WCF:

Ejecuta la web de asp.net Core, el efecto es el siguiente que se muestra:



Intentamos modificar el servicio WCF para que la interfaz devuelva el resultado tras 3 minutos, y luego reiniciamos asp.net núcleo para llamar al servicio WCF, y el error es el siguiente:

AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.)

En este momento, necesitamos modificar el tiempo de espera por defecto, personalizar la vinculación BasicHttpBinding y volver a editar el archivo Startup.cs, de la siguiente manera:



Descarga del código fuente:

Turistas, si queréis ver el contenido oculto de esta publicación, por favorRespuesta





Anterior:Ayuda con la corrupción del registro de Windows
Próximo:VS 2019 utiliza svcutil.exe herramientas para generar el archivo de llamada
Publicado en 15/9/2020 16:26:41 |
Apréndelo
Publicado en 11/5/2021 13:58:38 |
Hay un jefe de código fuente
Publicado en 18/6/2021 15:07:44 |
Solo para ver
Publicado en 18/6/2021 15:08:38 |
El código no puede verse
Publicado en 28/6/2021 10:58:22 |
No he conseguido resultados, ¿qué está pasando?
Publicado en 4/7/2021 10:21:09 |
Vuelve para aprender de los dioses, gracias por compartirlo
Publicado en 3/8/2022 15:36:10 |
Las mismas necesidades, ven y aprende
Publicado en 2/12/2022 1:17:10 |
Aprende de los dioses
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com