Windows服务传输文件流

1 篇文章 0 订阅

        大致的心路历程和方案确定过程是这样:这个项目的服务端是基于windows服务,引用SignalR(WebSocket)与客户端进行交互。众所周知SignalR的使用场景是即时通讯、通知等数据量不大的交互,在这个项目中主要用于下发一些参数和接收调用命令,数据量交互很小的场景。如果要用windows服务作为载体来传输大文件(比如升级包)是无法实现了,我查阅了下资料ASP.NET Core SignalR支持流式传输。但是这个项目用的是.net framework,所以用SignalR来实现传输文件的方案是不行的,还是得走传统的http方式来传输,不浪费服务器资源在部署一个站点来专门处理文件传输,就想到了用OWIN托管API来实现(不了解的同学自行百度)。以下是具体实现过程及代码:

首先在服务的OnStart方法中增加启动一个服务,url可以通过配置或者写死如http://x.x.x.x:6088,后续客户端发起http请求的地址

然后在启动类Startup中加入路由配置,客户端按此路由规则请求具体的控制器的方法。

接下来就新建控制器方法来具体写文件传输Response给客户端。

下面是客户端下载服务端的http调用接口代码

以上就完成了基于Windows服务端的传输文件,下载完成的文件如果是压缩包还需解压出来,这里就不赘述了。希望以上对读者有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值