欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 394

点击:1121

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 394
回复:求助:在WEB页下载挂接资源的程序问题

作者: xietao


在ASP.NET下开发访问dp2libraryws的程序,有两种方法实现对dp2libraryws Webservice接口的访问。

第一种方法是,像所有Webservice一样,只要你知道它的WSDL文件,你就可以利用.NET的工具来创建一个proxy程序,这个proxy程序把Webservice接口包装了,你看起来就像调用本地函数一样调用它。在这个方法中,WSDL文件包含了所有的机器需要知道的信息,不再需要任何其他东西的支持。Webservice技术牛就牛在这点,它是一个非常通用和简洁的技术。当然,为了完成开发,可能需要针对具体API的解释性文档,让开发者能够了解API的功能,不过这是给人看得,不是给机器看的。

第二种方法是,采用数字平台公司为dp2libraryws webservice API接口开发的DigitalPlatform.CirculationClient.dll库函数,相当于在上述第一种方法的传统的proxy程序代码上又增加了一层和通讯有关的功能,强调了通讯通道的概念,对多通道和并发访问有完善的处理办法(例如采用Stop类和工具条上的停止按钮很好集成,方便操作者随时中断长操作)。这是目前dp2circulation、dp2catalog等前端所采用的接口库。这个库的好处是,它比较成熟,开发者只需要调用里面的一些接口函数,就可以实现访问dp2libraryws服务器的功能,而不必要去了解许多webservice proxy接口的细节。

第二种方法的缺点是,开发者必须了解DigitalPlatform.CirculationClient.dll库函数的特性思维模式,否则用起来会有些困难。其实,DigitalPlatform.CirculationClient.dll库函数仅仅是访问dp2libraryws的一种途径和方法,不是唯一的方法。

在上次的email通讯中,我回复你的最后一封email里面我问你最近采用的是哪种方法,我知道了后可以提供更有针对性地服务和帮助。然后就一直没有得到你的回复。(我这几天没有去公司,没有收最新的email。)

从你这次提供的代码片段看,出现

using DigitalPlatform.CirculationClient;

这一句话,表明你有挂接使用这个函数库的用意;

wsLibrary.Library lib = new wsLibrary.Library();
wsLibrary.Result result = new wsLibrary.Result();

好像又是在调用你自己创建的proxy代码内的东西。

我这里重申一下,两种方法不要混用。

我现在不在公司的开发机器面前,有些代码看不到,我对你描述的情况先进行一些简单分析,其实原因可能是你现在手头的DigitalPlatform.CirculationClient.dll二进制或者源代码旧了,因为几个月过去了,dp2libraryws webservice API发生了不少变化,因而DigitalPlatform.CirculationClient.dll库函数也发生了不少变化,如果你采用了DigitalPlatform.CirculationClient.dll库函数,我回头给你提供最新的库函数版本,问题就会消失。

而如果你采用的是自己的proxy程序,你只需要在VS2005中webservice reference节点那里update刷新一下,重新编译一下代码即可。

如有进一步的问题请继续发帖交流。

在计划中,我们过一段会在网站上提供样例程序的打包下载,在dp2系统的参考手册里也会增加更详细的章节解释。



发表时间: 2009-01-14 22:47:15



  • 普通文章 求助:在WEB页下载挂接资源的程序问题 liujp 2009-01-14 10:59:11[点击:13512]
  • 普通文章 回复:求助:在WEB页下载挂接资源的程序问题 xietao 2009-01-14 22:47:15 (ID:394) [点击:1121]
  •  

    在线用户
    (无) 
    当前栏目在线用户数 0, 总在线用户数 0