积极答复者
请教,关于WebService服务器

问题
-
整个系统:
客户端程序------(Webservice)------服务器程序---------(GPRS、串口等)---------专有设备
客户端程序:C#开发,可能是winform形式的,也可能是webform形式的
服务器程序:C#开发,winform形式的EXE程序(因业务需要,这里只能是这种形式)
需求:客户端通过调用部署在服务器端的webservice接口,发送数据(与专有设备之间的协议命令)给服务器,服务器通过GPRS或串口转发协议命令至专有设备,专有设备响应后,返回数据给服务器,服务器再返回给客户端,完成一次调用。
问题:webservice如何与部署在同一机器上的服务器程序(C#开发,winform形式的EXE程序)进行通讯,或者说,webservice如何调用服务器程序(C#开发,winform形式的EXE程序)发送协议命令??
请高手指点
谢谢- 已移动 Sheng Jiang 蒋晟Moderator 2009年4月2日 18:15 .Net通讯类库问题
答案
-
您好 您的要求可以通过配置 wcf组件实现 wcf 可以直接在 exe文件中建立 webservice
工作突然有点忙 嘿嘿- 已标记为答案 韦恩卑鄙 waywaModerator 2009年5月7日 4:48
全部回复
-
好的,我详细说一下:
为简化 XML Web services 客户端应用程序的开发,Visual Studio 提供了 Web 引用。Web 引用与传统的引用和组件不同;Web 引用不引用安装在本地计算机上的组件或类库,而是提供对特定资源的访问,这种资源是通过 Internet 协议(如 SOAP 或 HTTP)提供的。
实际上,Web 引用是一个生成的代理类,它在本地表示 XML Web services 所公开的功能。该代理类定义的方法表示 XML Web services 所公开的实际方法。应用程序如果创建了该代理类的一个实例,就可以调用 XML Web services 方法,就好像 XML Web services 是一个本地可用的组件一样。
具体方法参考这里:
http://msdn.microsoft.com/zh-cn/library/6h0yh8f9(VS.80).aspx
周雪峰- 已标记为答案 KeFang Chen 2009年4月7日 6:45
- 取消答案标记 韦恩卑鄙 waywaModerator 2009年5月6日 2:04
-
web service是通过http发送SOAP协议的数据。如果你需要使用其他通讯方式或者数据格式,需要自己编写代码。
举例来说,你可以用web service把数据发送到服务器端的一个队列(一般用数据库保存),而服务器端另外一个程序则轮询这个队列,决定是否用socket发送数据。
MSMVP VC++- 已标记为答案 KeFang Chen 2009年4月7日 6:45
- 取消答案标记 韦恩卑鄙 waywaModerator 2009年5月6日 2:04
-
蒋老师您好,
很感谢您的回复。
但我想您误会我的意思了。
我的情形是这样的:
有一个C#开发的exe程序(server.exe)长期运行着,接受类似于手机的设备通过GPRS登陆上来,这样server.exe就能与安装在现场的设备取得通讯了。整个系统中,server.exe是唯一一个能与设备直接通讯的程序。
现在需要开发一个客户端程序client.exe,提供控制安装在现场的设备的功能,即发送一些命令到设备,或者从设备读回来一些数据。
这样,问题就产生了:client.exe怎么把命令发送给server.exe从而发送到现场设备呢?我首先想到的是webservice,在安装server.exe的机器上部署webservice,client.exe只要访问webservice就可以了。但webservice本身其实是无法与现场设备通讯的,它得把命令“通过某种方式”发送给server.exe,由server.exe发送给现场设备,然后把设备的响应的数据返回给webservice,这样,客户端就能间接的与设备通讯了。
上面的“通过某种方式”就是我需要的,我不知道在.net里,可以使用什么方式。之前,我用delphi,可以让server.exe程序拥有一套COM接口,即导出一个.tlb文件,这样,webservice引用这个.tlb文件,就可以像访问COM+组件一样的方式来调用server.exe了。
不知道我说清楚了没有,期待您的回复,还有周雪峰老师。
-
蒋老师您好,
您说的这种方式可以实现我的需求,但比较麻烦。
我网上找过一些资料,关于.net中引用excel(http://www.cnblogs.com/skywind/archive/2008/06/16/1222992.html)
其实我想做的就是这个带COM接口的excel。但在.net好像没法实现(当然很有可能是我不会) -
您好 您的要求可以通过配置 wcf组件实现 wcf 可以直接在 exe文件中建立 webservice
工作突然有点忙 嘿嘿- 已标记为答案 韦恩卑鄙 waywaModerator 2009年5月7日 4:48