C#Winform项目如何加入WebService接口???

雪狼孤竹 2019-01-03 09:53:56
WebService这块我确实不太明白,所以在此发帖来寻求答案。

有一个Winform开发的单机版设备控制程序,现在有个需求要并入到用浏览器访问的一个管理平台中。

是否能实现管理平台对设备的操控?

如果能够实现,Winform程序如何添加WebService接口?

望了解的朋友,帮帮忙,在此先谢过了!

...全文
2468 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2019-04-03
  • 打赏
  • 举报
回复
先搞清楚网络情况,然后再谈方案
然后再搞清楚,你的需求是“双工”还是“单工”
然后再搞清楚,是点对点集成,还是平台对平台集成
在弄清楚情况以后,我们再谈用什么的问题。


hanghangz 2019-04-03
  • 打赏
  • 举报
回复
用wcf啊六个字
XBodhi. 2019-03-07
  • 打赏
  • 举报
回复
1. asmx 可以引用
2.wcf 可以引用
3.wcf 可以利用 client 实现
4.可以利用 httpclient ,httpwebrequest ,webclient

以上方法都可以啊。
银龙软件 2019-03-05
  • 打赏
  • 举报
回复
楼主的意思是浏览器发消息给winform,winform去执行吧,webservice可以的
圣殿骑士18 2019-02-25
  • 打赏
  • 举报
回复
你提到“是否能实现管理平台对设备的操控?”

显然,用webservice,webapi都是不合适的。平台要操控winform程序,这是双向沟通。建议用websocket。

==========
欢迎关注微信公众号 “产品技术知与行” ,打造全面的结构化知识库,包括原创文章、免费课程(C#,Java,Js)、技术专题、视野知识、源码下载等内容。
最新文章:解读经典《C#高级编程》 第四章之继承.接口 https://mp.weixin.qq.com/s/fO4C0WAYZUJYEvKJiBCuVA
常熟银来哉 2019-02-24
  • 打赏
  • 举报
回复
这种架构本身不专业,在一个客户机上建立webservice这种重量级的服务会增加维护难度。应该保留winform,另外创建消息服务器,web服务器与win form间通过消息传递来响应。假如这种响应实时性高的话,那么应该直接建立socket通信。
无V涯 2019-01-10
  • 打赏
  • 举报
回复
给你个动态添加的吧 ,这是我写的,有不好地方,可以帮忙指正
https://mp.csdn.net/postedit/86215767
雪狼孤竹 2019-01-04
  • 打赏
  • 举报
回复
引用 9 楼 以专业开发人员为伍 的回复:
你如果没有对外发布服务的工程经验,怎么能答应这种需求呢?


这个暂时没答应。
1、这个不熟悉,无法给与回复;
2、如果方便快捷,也是学习的一个途径。
  • 打赏
  • 举报
回复
引用 2 楼 雪狼孤竹 的回复:
具体情况是,我这边的设备是用winform控制的,用户那边又引入了一个网站类的管理平台,他们要实现网站类的管理平台能够直接控制我这边的设备,我这边的winform需要给对方提供一个可控的调用接口。对方提出采用webservice的方式,我对这部分不太了解,所以来问问,这种情况可否实现?如果可实现,需要注意什么?
你如果没有对外发布服务的工程经验,怎么能答应这种需求呢?
  • 打赏
  • 举报
回复
所谓“架构”设计问题,是一个工程相关的问题,例如你是否部署过对外提供的服务?你是否知道众多客户端都是怎么访问服务的?一旦在路由设置、客户端程序调试等方面有问题,你是否能提供支持?这跟技术的应用部署有关系,并不是仅仅用什么编程语句的问题。 你会什么能发布什么服务程序,就发布什么服务。例如你要写一篇1、2页Word文档的说明书,告诉人家到哪一个IP/域名去访问服务,以什么协议为基础,收发的消息的信令的具体字段的业务内容。如果你说你只会单机窗口程序编写,那么直接告诉对方,由对方来派人帮你编程设计,不要自己来勉强。
  • 打赏
  • 举报
回复
在winform里自宿主一个web服务是不错的选择,在程序启动时就开启服务,提供服务接口地址给管理平台让他们调用。webservice就是通过暴露api供外部调用,他们需要什么数据你只需返回就行,让他们自己解析返回的xml数据。
  • 打赏
  • 举报
回复
在什么程序中负载 webservice并不是问题(实际上,使用 HttpListener 提供基本的 http 一般处理 Get、Post 方法,要比 webservise 更加灵活且快速)。但是关键是架构。例如你这边的“系统”仅仅是一个桌面单机版程序?架构不同那就看出立刻出现问题。你作为服务提供方,你会什么就用什么方法先提供服务,先不用纠结 webservice。
qbilbo 2019-01-04
  • 打赏
  • 举报
回复
可以考虑用:自宿主Web Api
或:HttpListener 。
  • 打赏
  • 举报
回复
引用 1 楼 likelinsiyuan 的回复:
啥意思,是指winform上面的功能要在网站上也能使用么,如果是那就在网站上重新开发。 还有webservice是接口,不是说winform里面添加webservice。 你需要新建webservice工程,然后部署发布。 再在winform里面调用webservice接口。 如何创建webservice项目,看一下这链接 https://www.cnblogs.com/Brambling/p/6815565.html
lz 的意思是要在 winform 窗口中提供 webservice服务。
  • 打赏
  • 举报
回复
引用 2 楼 雪狼孤竹 的回复:
具体情况是,我这边的设备是用winform控制的,用户那边又引入了一个网站类的管理平台,他们要实现网站类的管理平台能够直接控制我这边的设备,我这边的winform需要给对方提供一个可控的调用接口。对方提出采用webservice的方式,我对这部分不太了解,所以来问问,这种情况可否实现?如果可实现,需要注意什么?
既然是对方作为客户端,那么你提出方案并实现,让对方来访问呗。
雪狼孤竹 2019-01-04
  • 打赏
  • 举报
回复
引用 1 楼 likelinsiyuan 的回复:
引用
有一个Winform开发的单机版设备控制程序,现在有个需求要并入到用浏览器访问的一个管理平台中。

啥意思,是指winform上面的功能要在网站上也能使用么,如果是那就在网站上重新开发。
还有webservice是接口,不是说winform里面添加webservice。
你需要新建webservice工程,然后部署发布。
再在winform里面调用webservice接口。
如何创建webservice项目,看一下这链接
https://www.cnblogs.com/Brambling/p/6815565.html

具体情况是,我这边的设备是用winform控制的,用户那边又引入了一个网站类的管理平台,他们要实现网站类的管理平台能够直接控制我这边的设备,我这边的winform需要给对方提供一个可控的调用接口。对方提出采用webservice的方式,我对这部分不太了解,所以来问问,这种情况可否实现?如果可实现,需要注意什么?
  • 打赏
  • 举报
回复
引用
有一个Winform开发的单机版设备控制程序,现在有个需求要并入到用浏览器访问的一个管理平台中。

啥意思,是指winform上面的功能要在网站上也能使用么,如果是那就在网站上重新开发。
还有webservice是接口,不是说winform里面添加webservice。
你需要新建webservice工程,然后部署发布。
再在winform里面调用webservice接口。
如何创建webservice项目,看一下这链接
https://www.cnblogs.com/Brambling/p/6815565.html
完整的服务端及客户端调用程序,在win7+ vs2015环境运行通过. 一、说明 1、创建winfrom应用程序;(或者是控制台项目) 2、在项目中添加一个WCF服务,并实现服务; 3、在需要启动WebService服务的地方启动该服务即可; 二、代码如下: 1、新建一个WCF服务——定义服务接口    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]     public interface ICalculator     {         [OperationContract]         double Add(double n1, double n2);     } 2、新建一个WCF服务——实现服务 public class CalculatorService : ICalculator     {         public double Add(double n1, double n2)         {             return n1 + n2;         }     } 3、添加完WcF服务后会在应用程序配置文件中有入下节点                             <!--TestServer.ICalculator服务定义的接口,根据自己定义进行修改-->                                                                   <baseAddresses> <!--这个是要发布的服务地址,可以进行修改-->                                   </baseAddresses>                   4、在要启动服务的地方启动服务监听   public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { //打开服务创建监听,并开始监听消息 ServiceHost serviceHost = new ServiceHost(typeof(Service1));//需要using System.ServiceModel; serviceHost.Open(); label1.Text = "服务启动正常"; } catch (Exception ex) { label1.Text = ex.Message; } } 5、下面可以在客户端通过上面的服务地址”http://xxx.xxx.xxx.xx:8733/test/Service1/“对服务进行调用 到这步就实现在控制台中实现webService的发布。

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧