现有两个系统,都是C#开发的,其中C/S系统是一个后台的通讯服务程序完成GPRS通讯、数据采集之类的工作;
而客户端是ASP.NET开发的一个系统,用以展现和管理。现在需要B/S客户端及时的将命令下达给C/S后台服务,流程如下:1.前端命令后台去做事,
2.后台收到命令后去做事,需要花费几秒钟
3.后台做完事了,返回执行结果给前端。因此麻烦给一个好的方案建议,最好涉及技术细节更多一些,谢谢了!!!

解决方案 »

  1.   

    这个貌似难度比较大
    B/S程序命令C/S系统干活这个貌似想不到什么办法,不过C/S程序可以定时调用B/S的WebService,根据获得的数据执行相应操作
    执行结果返回给B/S也是个问题,放入数据库?还用是用通讯技术获取序列化后的对象?
      

  2.   

    asp.net这个玩意,其程序运行在web服务器上。因此,其实你就是web服务器数据采集服务器之间的通讯,这只是在asp.net页面事件(例如按钮的click事件处理)处理代码上写上两三行就可以了,实在看不出有什么问题。
      

  3.   

    1--websevice  (b/s 做方法cs调用)
    ----------------------
    2三层  数据层用cs写封装成dll 方便自己以后调用。
    其它两层 仅仅也只能用web方式写,应为需要内嵌js 等等。
      

  4.   

    你的winform客户端怎样的访问数据采集服务器,asp.net页面也怎样采集,这两个进程之间并没有什么障碍。
      

  5.   

    asp.net页面也怎样采集  -->  asp.net页面也怎样访问代码都可以直接copy过去就可以了。
      

  6.   

    对 用websevice  之前开发个项目   asp.net客户端    C#手机端  就是用websevice进行交互的啊
    同一个数据库啊
      

  7.   

    各位:
    1、公用一个数据库
    2、如果用webservice的话,c/s主动访问B/s肯定不好,因为客户端的请求不确定
      

  8.   


    兄弟没理解我的意思,c/s负责采集数据处理,b/s负责采集数据的展现(定时从数据库读取).
    b/s和c/s之间的交互是实时的命令。
      

  9.   

    那你可以这样吧:服务端既有socket又有webservice,socket用于c/s,webservice用于b/s
      

  10.   


    我来猜一下你的意思吧,汗!
    你的后台cs程序是一个定时执行的程序,每一段时间执行任务取得数据。但是你想在web系统中取得实时的执行数据!
    是不是?
      

  11.   


    不太明白你的流程,socket做什么?webservice又做什么?详细点可以不?
      

  12.   

    程序整体采用MVC三层模式吧,程序结构清晰,架构比较好。后台处理最好搞成服务程序只处理任务,中间加一个任务处理层。
      

  13.   

    根据您的描述我觉得您的意思是这样的,浏览器程序发出要求数据的指令——服务端通知c/s客户端采集数据——服务端获取数据——返回给浏览器程序。
    我觉得可以通过这样的结构来做:浏览器程序通过webservice向服务器要求数据——服务器通过socket从c/s客户端获取数据——服务端通过webservice函数的返回值将数据返回给浏览器
      

  14.   

    1.前端命令后台去做事, 
       B/S 可以在前面设置一些参数。往一个表种添加一条数据,比如时间
    2.后台收到命令后去做事,需要花费几秒钟 
       C/S 通过一个时间事件 间断的去读数据库的表,如果有数据,就开始干活。
    3.后台做完事了,返回执行结果给前端。
       B/S 可以在前台查看数据库结果表,后天做完的结果!
      

  15.   

    两个集合 无敌了啊  哈哈  
    csdn管理员 不错 增加内容判断
      

  16.   

    不知可否模仿petshop4.0的异步原理,用队列来处理,不过你自己需要定义一个通讯的规则,而且和petshop4.0的用法正好是反过来
      

  17.   

    使用webservice是比较好的可行方法、
      

  18.   

    1。我觉得webservice比较通用,而且好扩展易于第三方交互,
    但是哪端发布服务?C/S发布服务吗? 谁告诉我?
    2.我想到了Wcf,如果我用vs2008开发,直接用wcf和使用websevice哪个更好?
      

  19.   

    后台用webservice,前台WEBFORM 、WINFORM 均可.
      

  20.   

    webservice 能做到真正的即时通信吗
    还是socket吧
      

  21.   

    第一个解决方案:c/s服务端程序可以与b/s服务端程序合为一体,但如果c/s服务端有长久保持的变量,这个不可取;
    第二个解决方案:iis发布webservice,通过remoting或者socket与c/s服务器进行通信;
    第三个解决方案:就干脆用wcf将b/s服务端与c/s服务端合为一体,这样不必因为采用webservice而单独寄宿一个服务。此外,如果c/s客户端是pc,那可以直接用wcf双向通信,如果c/s客户端是移动设备,在服务程序中还是需要socket。
      

  22.   

    string path = @"test1.exe";
    System.Diagnostics.Process.Start(Server.MapPath(path));这个能达到即时执行的效果
      

  23.   

    wcf将bs和cs合为一体?这个建议好!没有实际操作过!有没有例子啊?
      

  24.   

    我们新近做的一个就是这样,wcf作服务端,客户端包括web程序、winform程序、wpf程序、智能手机四种应用
      

  25.   

    这里牛,好,这wcf,求例子!
      

  26.   

    <?xml version="1.0" encoding="utf-8" ?>
    <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程序及智能手机程序
      

  27.   

    asp.net使用socket的话,是基于页面还是基于webserver?
      

  28.   

    楼主,原来微软有个这样的东西http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WSESecurity.mspx?mfr=true,似乎可以在windows应用程序中寄宿webservice。那就是不用wcf,用webservice也可以将b/s服务端和c/s服务端做在一起了。