首页 > 其他分享 >Sb7:关于.net使用WCF过程中遇到的坑

Sb7:关于.net使用WCF过程中遇到的坑

时间:2023-11-27 09:58:51浏览次数:37  
标签:文件 upgrade 服务 Sb7 WCF 升级 wcf net 客户端

最近写了一个类似QQ升级的功能。使用wcf编写了一个服务端。

 做了四个接口服务,可以根据软件编号查询所有版本号,可以根据版本查询所有待升级文件,远程获取升级文件。

在做服务的时候原计划GetFile方法中采用异步同时传输,将大文件切割成多个模块进行传输,在客户端接收完后重新组包再生成文件。但是出现了一个问题,exe文件如果过大,切割后再客户端接收到生成原来的exe文件打不开【麻烦大佬能给我一个完美的解答】。很难受,没找到原因,对于其他文件,例如word文件,切割后,在客户端接收重新组包可以还原原来的文件。后面只能将单帧传输文件大小放大,好在wcf生成时默认单帧大小可以达到2147483647字节,所以一般文件传输都没有问题。

好了,上面的服务端实际很简单,①在本地创建了一个存储升级文件信息的sqlit数据库;②创建wcf服务,将升级需要的业务全部写好。③在自己需要升级服务的软件中编写wcf客户端。

PS.此处客户端升级程序模仿了GeneralUpdate【https://www.cnblogs.com/justzhuzhu/category/2130923.html

 此处我们新建了一个upgrade程序(独立执行,方便升级client),在client中判断当前是否需要升级,如果需要升级,那么将upgrade启动起来,同时将client关闭。

好了,这里我要开始说坑了

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

我们在编写wcf客户端的时候考虑到client中需要使用同时upgrade中也需要使用,所以这里我干了一件傻事,我将wcf客户端封装成了动态库

 wcfClient中我引用了wcf服务,同时将所有接口都封装在了VersionValidate类中,

 wcfClient中的app.config会随着添加wcf服务自动添加了system.serviceModel节点【坑点就在这里,由于你通过引用wcf服务,系统会自动添加这些节点】,这个节点是连接wcf服务关键的节点。

我新建了一个类似“upgrade”程序的“UpLoadExe”程序。这个程序引用了wcfclient,本以为就这样可以连接wcf服务了,结果死活都连不上。

后面查了很久,发现我在debug中,app.config缺少上面的 system.serviceModel节点,一下就懂了,原来我们在引用类库的时候,类库中的配置文件并没有添加到我们的uploadexe的配置文件中,添加上后就可以连接了。

 

标签:文件,upgrade,服务,Sb7,WCF,升级,wcf,net,客户端
From: https://www.cnblogs.com/yjcore/p/17858550.html

相关文章

  • .NET8 极致性能优化 Non-GC Heap
    前言.NET8里面JIT引入了一个新的机制,叫做Non-GCHeap。JIT可以确保相关对象分配在Non-GCHeap上,该堆像其名称一样,不受GC管理。JIT需要保证这个对象没有被GC引用,并且在这个对象的生命周期内一直是根对象(不会被GC消灭的对象)的状态。原文:.NET8极致性能优化Non-......
  • SkiaSharp库在NetCore下跨平台图片操作基础使用方法
    SkiaSharp库在NetCore下跨平台图片操作基础使用方法:在跨平台开发中,处理图片是一项常见的需求。而SkiaSharp库是一个强大的工具,它提供了在NetCore平台下进行跨平台图片操作的能力。本文将介绍SkiaSharp库在NetCore下的基础使用方法,以及逐步深入的高级功能。什么是SkiaSharp?SkiaS......
  • NetCore使用SkiaSharp库对给定路径的图片进行大小缩放,要适当考虑等比率缩放,以高度为准
    SkiaSharp库是跨平台的2D图片操作库,在夸平台方面比较稳定,且支持常用的“windows操作”:缩放,剪裁,格式转换等。例如:如果要按照原始图片高度为准,自动调整宽度进行等比例缩放,可以根据以下步骤使用SkiaSharp库进行操作:导入SkiaSharp命名空间:usingSkiaSharp;加载原始图像:str......
  • 一个基于.NET Core开源、跨平台的仓储管理系统
    前言今天给大家推荐一个基于.NETCore开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。仓储管理系统介绍仓储管理系统(WarehouseManagementSystem,WMS)是一种用于管理和控制仓库操作的软件系统,它可以帮助企业实现对仓库内物品的跟踪、存储、拣选、包装和发运等全过程......
  • 一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务
    ......
  • ViT在DDPM取代UNet(DiT)
    title:ViT在DDPM取代UNet(DiT)banner_img:https://cdn.studyinglover.com/pic/2023/08/b6f940f512488c10b7a1bf40eb242cae.pngindex_img:https://cdn.studyinglover.com/pic/2023/08/f68c4f271029a484e97822dbb9fb2569.pngdate:2023-8-209:43:00categories:-笔记tags:......
  • MXnet-arcface数据集准备
    title:MXnet-arcface数据集准备banner_img:https://proxy.thisis.plus/202304271933740.pngdate:2023-5-821:28:00categories:-工具众所周知,mxnet是一个沐神主导开发的一个深度学习框架,之前听李沐的讲论文时也听他说过很多次,但是已知没有机会使用,最近接触了一个项目,有......
  • Netty源码学习5——服务端是如何读取数据的
    系列文章目录和关于我零丶引入在前面《Netty源码学习4——服务端是处理新连接的&netty的reactor模式》的学习中,我们了解到服务端是如何处理新连接的,即注册ServerSocketChannel对accept事件感兴趣,然后包装ServerSocketChannel为NioServerSockectChannel,最后由主Reactor在循环中利......
  • 【ASP.NET Core】MVC过滤器:运行流程
    MVC的过滤器(Filters)也翻译为“筛选器”。但是老周更喜欢翻译为“过滤器”,意思上更好理解。既然都叫过滤器了,就是在MVC的操作方法调用前后进行特殊处理的类型。比如:a、此调用是否已授权?b、在模型绑定之前要不要修改数据源?(可能含有儿童不宜的数据)c、在调用MVC方法前要不要改一......
  • .net core下优秀的日志框架使用解析,附源代码
    在.NETCore中,日志是一个非常重要的组件,它可以帮助我们记录应用程序的运行情况,以便在出现问题时进行排查。在本文中,我们将介绍五个优秀的.NETCore日志框架,它们分别是Serilog、NLog、Log4Net、Microsoft.Extensions.Logging和Loupe。我们将为每个框架提供使用方法及步骤,并......