架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 53075|回复: 8

[.NET Core] ASP.NET Core 3.1 调用 .NET 4.0 WCF 服务教程

[复制链接]
发表于 2020-7-19 22:18:08 | 显示全部楼层 |阅读模式
在开发新的项目,使用asp.net core技术,老项目有可能是使用 .net framework 4 开发的 wcf 服务,由于重构成本太高,需要使用 asp.net core 调用 wcf 服务接口。

首先,新建一个两个项目:

ASP.NET Core 3.1 项目:dotnet-core-call-wcf
.NET Framework 4 项目(WCF 服务应用程序):schools-wcf-service

Visual Studio 2019想创建一个WCF服务,找不到模板,解决方案:

选择“ 安装更多工具和功能”以打开Visual Studio Installer。选择单个组件选项卡,向下滚动到开发活动,然后选择Windows Communication Foundation,单击修改。

QQ截图20200719205744.jpg
wcf 创建两个接口,如下:

接口实现代码如下:


服务契约是一组相关服务操作的集合,当我们在一个接口上应用了ServiceContractAttribute,便赋予了服务契约的属性。但是,对于这样一个类型,它的成语并不会自动成为契约的服务操作,只有应用了OperationContractAttribute特性后,相应的方法成员才能成为能够通过服务调用方式访问的服务操作。

启动wcf项目,会自动运行WcfTestClient,尝试调用如下图:

QQ截图20200719213635.jpg QQ截图20200719213623.jpg

使用 ASP.NET Core 项目调用 WCF 服务

右击 Connected Services,选择添加连接的服务,选择 WCF 服务,如下图:

QQ截图20200719213937.jpg

服务地址填写:http://localhost:3705/Service1.svc

可能出现的错误:

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

由于,我们不可能把 wcf 服务地址写死,所以,在 appsettings.json 文件添加如下代码:

编辑 Startup.cs 文件,注册wcf服务,代码如下:

在 HomeController 控制器调用 wcf 服务,首先构造函数注入,代码如下:

调用wcf服务:

运行asp.net core网站,效果如下图:

QQ截图20200719220400.jpg

我们尝试修改 WCF 服务,让接口 3 分钟之后才返回结果,然后重新启动 asp.net core 调用 wcf 服务,报错如下:

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.)

这时候,我们需要修改默认的超时时间,自定义 BasicHttpBinding 绑定,重新编辑 Startup.cs 文件,配置如下:



源码下载:

游客,如果您要查看本帖隐藏内容请回复





上一篇:Windows注册表损坏的帮助
下一篇:VS 2019 使用 svcutil.exe 工具来生成调用文件
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-9-15 16:26:41 | 显示全部楼层
学习一下
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-5-11 13:58:38 | 显示全部楼层
有源码大佬
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-6-18 15:07:44 | 显示全部楼层
就是要看看啊
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-6-18 15:08:38 | 显示全部楼层
代码无法查看
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-6-28 10:58:22 | 显示全部楼层
我一直获取不到搜索结果,是什么情况?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-7-4 10:21:09 | 显示全部楼层
回来向大神们学习的,谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-8-3 15:36:10 | 显示全部楼层
同样需求,过来学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-12-2 01:17:10 | 显示全部楼层
向大神学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-6-18 05:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表