现有两个系统,都是C#开发的,其中C/S系统是一个后台的通讯服务程序完成GPRS通讯、数据采集之类的工作;
而客户端是ASP.NET开发的一个系统,用以展现和管理。现在需要B/S客户端及时的将命令下达给C/S后台服务,流程如下:1.前端命令后台去做事,
2.后台收到命令后去做事,需要花费几秒钟
3.后台做完事了,返回执行结果给前端。因此麻烦给一个好的方案建议,最好涉及技术细节更多一些,谢谢了!!!
而客户端是ASP.NET开发的一个系统,用以展现和管理。现在需要B/S客户端及时的将命令下达给C/S后台服务,流程如下:1.前端命令后台去做事,
2.后台收到命令后去做事,需要花费几秒钟
3.后台做完事了,返回执行结果给前端。因此麻烦给一个好的方案建议,最好涉及技术细节更多一些,谢谢了!!!
B/S程序命令C/S系统干活这个貌似想不到什么办法,不过C/S程序可以定时调用B/S的WebService,根据获得的数据执行相应操作
执行结果返回给B/S也是个问题,放入数据库?还用是用通讯技术获取序列化后的对象?
----------------------
2三层 数据层用cs写封装成dll 方便自己以后调用。
其它两层 仅仅也只能用web方式写,应为需要内嵌js 等等。
同一个数据库啊
1、公用一个数据库
2、如果用webservice的话,c/s主动访问B/s肯定不好,因为客户端的请求不确定
兄弟没理解我的意思,c/s负责采集数据处理,b/s负责采集数据的展现(定时从数据库读取).
b/s和c/s之间的交互是实时的命令。
我来猜一下你的意思吧,汗!
你的后台cs程序是一个定时执行的程序,每一段时间执行任务取得数据。但是你想在web系统中取得实时的执行数据!
是不是?
不太明白你的流程,socket做什么?webservice又做什么?详细点可以不?
我觉得可以通过这样的结构来做:浏览器程序通过webservice向服务器要求数据——服务器通过socket从c/s客户端获取数据——服务端通过webservice函数的返回值将数据返回给浏览器
B/S 可以在前面设置一些参数。往一个表种添加一条数据,比如时间
2.后台收到命令后去做事,需要花费几秒钟
C/S 通过一个时间事件 间断的去读数据库的表,如果有数据,就开始干活。
3.后台做完事了,返回执行结果给前端。
B/S 可以在前台查看数据库结果表,后天做完的结果!
csdn管理员 不错 增加内容判断
但是哪端发布服务?C/S发布服务吗? 谁告诉我?
2.我想到了Wcf,如果我用vs2008开发,直接用wcf和使用websevice哪个更好?
还是socket吧
第二个解决方案:iis发布webservice,通过remoting或者socket与c/s服务器进行通信;
第三个解决方案:就干脆用wcf将b/s服务端与c/s服务端合为一体,这样不必因为采用webservice而单独寄宿一个服务。此外,如果c/s客户端是pc,那可以直接用wcf双向通信,如果c/s客户端是移动设备,在服务程序中还是需要socket。
System.Diagnostics.Process.Start(Server.MapPath(path));这个能达到即时执行的效果
<configuration>
<appSettings>
<add key="addr" value="net.tcp://localhost:8889/wcfservice" />
<add key="addr2" value="http://localhost:8887/wcfservice2"/>
</appSettings>
<system.serviceModel>
<services>
<service behaviorConfiguration="MyBehavior" name="sqrfuwuqi.Wcfservice">
<endpoint address="net.tcp://localhost:8889/wcfservice" binding="netTcpBinding" bindingConfiguration="DuplexBinding"
contract="sqrfuwuqi.IWcf" />
<endpoint address="http://localhost:8887/wcfservice2" binding="basicHttpBinding" bindingConfiguration="HttpBinding"
contract="sqrfuwuqi.IShouji" />
<endpoint address="mex" binding="mexTcpBinding" name="MEX" contract="IMetadataExchange" />
</service>
</services> <behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<serviceThrottling maxConcurrentSessions="10000" />
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors> <bindings>
<netTcpBinding>
<binding name="DuplexBinding" sendTimeout="00:02:00" receiveTimeout="00:03:00" transferMode="Buffered" maxReceivedMessageSize="2147483647">
<readerQuotas maxArrayLength="2147483647" />
<reliableSession enabled="true" inactivityTimeout="00:00:20" />
<security mode="None" />
</binding>
</netTcpBinding>
<basicHttpBinding>
<binding name="HttpBinding"> </binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>这个是wcf配置文件,设置两个终结点,一个net.tcp用于双向通信的wpf应用程序,一个http用于web程序和winform程序及智能手机程序