• 论富客户端程序的webservice实现


    声明:偶第一次在博客园写点东西,且水平处于菜鸟阶段,有不对的地方大家就当笑话看看好了~

    也许富客户端本是针对基于浏览器的bs结构的程序而言的,我说的这样客户端也是需要安装的,也许和remoting差不多吧。不过我比较笨,remoting怎么也没弄明白,反到是对webservice很是喜欢,于是将自己写的程序加上webservice,由cs结构变成了bs结构了。
    光说这些也不清楚,我结合最近一个项目中的实例来说下吧。

    在公司做电梯项目的时候,因为需要在客户端发卡(类似于向公交卡中写入 信息的过程),且主程序是bs结构的,于是开始计划用activex控件来完成,但是偶对c++不感冒,且最近网络不安全,对控件(特别是浏览器控件)防范很多,于是只好另换别的方法,无意中看到了webservice,其实我以前也听说过webservice,但一直没亲自44,这次用过之后,才知道webservice是即容易学,有好用。捡到宝了,哈哈~

    我简单说下webservice的用法:
    1)在服务端用vs建立一个web服务项目,然后按照helloworld的样式写个你需要的函数,如名称为ConnectServer(),假定此函数的功能为测试服务器链接,正确返回2008,否则链接失败。
    2)然后将服务端发布到本地iis的虚拟目录中如myweb,
    3)建立一个客户端(应用程序),添加一个web应用,如:http://localhost/myweb/service1.asmx,名称:myservice这样就完成了webservce的引用了。
    4)在调用的时候:myservice.service1 myse = new myservice.service1();
                                  int result = myse.ConnectServer();
    5)记得在int result前加一句mse.Url = myserviceUrl,这个地址放在你的客户端配置文件中就好了。
    这样一个完整的webservice应用就完成了。

    然后具体在我项目中,利用webservice获取卡片的信息,然后存储到本地,再调用本地的程序将数据写入卡片中,这样即免去了控件的烦恼,又实现了客户端及时的与服务器交互,呵呵,何乐而不为呢?
    而且webservice是由iis维护的,可以为其设定特定的线程池,一下子就多线程及线程优化的任务推给了ms,哈哈~
    btw:如果webservice要部署到远程服务器,请在webconfig中的system.web中添加<webServices>
          <protocols>
            <add name="HttpSoap"/>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
            <add name="Documentation"/>
          </protocols>
        </webServices>

    Over。就写这么多了,再多偶也写不出来了,嘻嘻!
  • 相关阅读:
    ExtAspNet新版本发布v2.0beta4
    自己实现Rich Text Editor
    ExtAspNet应用技巧(五) 动态创建工具栏菜单
    IronPython的Hello World
    关于“跨语言调用”和“CLS(公共语言规范)”的一点体会
    文档,又是文档
    对项目目标的一点想法
    推荐一个WMI的查询分析器
    几个很不错的.NET 相关的FAQ和例子代码的连接
    用IronPython写winform程序
  • 原文地址:https://www.cnblogs.com/4kapple/p/853732.html
Copyright © 2020-2023  润新知