| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

ASP技术

ASP技术
PHP技术
JSP技术
VB技术
.NET技术

本类阅读TOP10

·ASP如何获取真实IP地址
·解密ASP源代码
·Asp中五种连接数据库的方法
·ASP编程技巧大全[1]
·快速打造留言本教程[1]
·ASP中也能解压缩rar文件
·浅谈如何建立三层体系结构的ASP应用程序(2)
·浅谈如何建立三层体系结构的ASP应用程序(1)
·ASP编程技巧大全[2]
·用ASP发送邮件

站内搜索

在ASP程序中调用Web Service

  微软投入了大量资金来推销其.NET的各种优点,其中.NET最大的优点之一就是微软始创的XML Web Services。XML Web Services可以将你的程序和以前定制的DLL和COM/DCOM组建分离(避免陷入DLL陷阱),然后将这些功能设计成为XML Web Services,让其他应用程序也可以访问和调用这些功能(比如:网站、分布式程序)(关于怎样在.NET中建立和使用XML Web Services,请参考这篇文章:http://aspnet.4guysfromrolla.com/articles/062602-1.aspx)。那么,当你考虑提升现有ASP程序性能的时候,怎样将其与已经开发的XML Web Services结合呢?

  本文的目的就是演示怎样将最新的XML Web Services和现有ASP程序结合起来。通过将一些具体的业务功能写成XML Web Services并且将这些XML Web Services与ASP程序完美结合,现有的ASP程序就可以象ASP.NET程序一样共同“分享”XML Web Services的好处了。当你需要提升现有ASP程序的性能并且和已经开发的ASP.NET同步,但是有没有时间和精力将这些程序完全修改为ASP.NET程序的时候,我们就可以考虑将ASP和XML Web Services结合使用。

  本文将要用到的例子是基于以下现实需要的:在B2B电子商务中,对于一些比较固定的客户,我们可能对他们有一些特殊的折扣。下文中我们将建立一Web Services,这个 Web Services的功能就是针对特殊的客户按照一定规则计算折扣,然后,我们将其与一个简单的ASP程序结合起来应用。

  数据库

  我们在这里使用微软Access中自带的NorthWind数据库,当然,我们不会照盘全收,我们需要对数据库的“Products”数据表表结构作一些小小的修改:增加一个保存商品实际价格的“CostPrice”字段(我们将填入一些随机数据)(这个数据库可以在这里下载到:http://www.4guysfromrolla.com/webtech/code/asptonet.zip)

  Web Service

  在文章“Creating and Consuming a Web Service”中已经讨论过,我们可以使用文本编辑器来建立Web Services,比如:WEB Matrix Projext或者VS.NET等工具。文中我们将试验使用VS.NET来建立Web Service。

  首先,在VS.NET中建立一个新的ASP.NET工程,然后,删除程序建立的Web Form,增加一个新的Web Service文件(命名为:eCommerce.asmx),在这个Web Service中,将默认的名字空间修改为ClassicASP_nDotNET.eCommerce,并且增加一个名为CalculateDiscountCompanyX的方法。

  WEB方法CalculateDiscountCompanyX是一个用于计算公司CompanyX折扣的简单函数(当然,更为健壮的解决方法是写一个通用的函数比如:CalculateDiscount(CompanyID),在这个函数中CompanyID专门用于定义特定的公司编号,然后,程序根据公司编号查找数据库得到具体的公司名称,并对其做出折扣计算。我们这里主要的目的在于演示XML Web Services和ASP程序的结合使用,因此,只用需要一些简单函数。)

  在我们的应用中,假设对公司CompanyX的最小折扣为10%,公司最低纯利润为7.5%,这些具体的折扣和利润都是固化写在程序中的。

  WEB方法CalculateDiscountCompanyX相当简单,将用到以下一些参数:

  1、UnitPrice:建议零售价格,数据类型为Double;

  2、CostPrice:商品的实际价格,也就是进货价格,数据类型为Double;

  3、AccessCode:该Web Services的安全密码,数据类型为String;

  如果函数计算出现错误,将返回-1,以下是函数源代码:

  <WebMethod()> _
  Public Function CalculateDiscountCompanyX(ByVal UnitPrice As Double, _
  ByVal CostPrice As Double, _
  ByVal AccessCode As String) As Double
  Dim dblDiscount As Double, _
  dblMarkup As Double, _
  dblMinMarkup As Double, _
  dblMinClientDiscount As Double

  dblMarkup = (1.3) '期望利润
  dblMinMarkup = (1.075) ' 最低利润

  ' 对客户的期望最低折扣
  dblMinClientDiscount = (0.1)

  Try
  If AccessCode = "p455w0rd" Then
  ' 根据利润计算折扣
  dblDiscount = FormatNumber(((UnitPrice - (CostPrice * dblMarkup))), 2)

  ' 检查折扣是否合适na
  If dblDiscount + 0 <= (UnitPrice * dblMinClientDiscount) Then
  dblDiscount = FormatNumber((UnitPrice * dblMinClientDiscount), 2)
  End If

  ' 检查是否有最低利润
  If (UnitPrice - dblDiscount) <= (CostPrice * dblMinMarkup) Then
  dblDiscount = FormatNumber((UnitPrice - (CostPrice * dblMinMarkup)), 2)
  End If

  Return dblDiscount
  Else
  Return -1 '密码错误
  End If
  Catch ex As Exception
  Return -1
  End Try
  End Function

  将Web Services和ASP程序结合起来

  为了使ASP和Web Services相互通讯变得相对简单,需要首先下载安装MS SOAP Toolkit 2.0(地址为:http://msdn.microsoft.com/SOAP/),这样,就可以使用SOAP来实现ASP和Web Services的通讯,这将使ASP程序和Web Services通讯与使用其他方法相比变得简单。事实上,在4Guys网站有一篇文章专门介绍SOAP的使用,这篇文章就是:Creating Web Services using ASP(地址:http://www.4guysfromrolla.com/webtech/070401-1.shtml)。

  这样,ASP页面就可以使用刚才我们建立的Web Service计算公司CompanyX的商品折扣,为了使程序看上去更加简单和条例,我们将SOAP调用从主程序移出来,专门写一个自己的函数:CalculateDiscount。由于使用了SOAP,所以这个函数调用Web Service比较简单,只有几行代码,程序代码如下:

  Public Function CalculateDiscount(UnitPrice, CostPrice)
  SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient")
  objSoapClient.ClientProperty("ServerHTTPRequest") = True

  ' 下面的链接需要修改为我们具体网站的链接
  Call objSoapClient.mssoapinit("http://localhost/ClassicASP_n_DotNET/" & _
  "eCommerce.asmx?WSDL", "eCommerce")
  ' 使用SOAP对象调用Web Service函数
  CalculateDiscount = objSoapClient.CalculateDiscountCompanyX(UnitPrice, _
  CostPrice, "p455w0rd")
  End Function

  以上的程序相当的明了,首先mssoapinit方法用WSDL为调用Web Service作准备,然后真正计算折扣的函数CalculateDiscountCompanyX被调用,将折扣计算出来并且返回给函数CalculateDiscount。

  在我们提供的源代码下载包里面,意思的函数都可以在companyx_products.asp页面找到,ASP页面将遍历整个“Products”数据表,在现实每条记录的时候都将调用“CalculateDiscount”函数来计算公司CompanyX的折扣。

  结论

  文章介绍了怎样用ASP来和Web Service通讯,另外,我们可以知道,将一些功能模块设计成为Web Service可以让ASP象ASP.NET一样调用这些模块。

  喻凯(编译)




相关文章
  • 十个JavaScript页面布局技巧
  • 十个最著名的JavaScript 库
  • PHP的新浪微博发信接口
  • 常见的开源软件许可证协议介绍
  • 开源软件许可证知识产权问题
  • 应用最广的十大Javascript框架
  • JAVA程序的加密和反加密
  • 在JAVA中编程实现数字签名系统
  • PHP开发框架的现状和展望
  • 网站标准重构的基础知识
  • Linux扫盲篇:CentOS、Ubuntu、Gentoo
  • 每个PHP开发者应该知道的五个开发要点
  • 如何在您的网站中加入“搜索本站功能”
  • 花十二个月建立一个成功的网站
  • 经典正则表达式
  • 正则表达式中的特殊字符
  • PHP字符串操作入门教程
  • EJB编程模型
  • JDBC概述
  • JSP白皮书
  • 相关软件

  • Photoshop中文教程
  • TURBO C教程  
  • CUG输入编缉,打字教程的C语言源程序  
  • C语言教程  
  • 功能强大的 TC 教程  
  • TURBO-C 教程的C语言源码  
  • 超级文本C++教程  
  • 操作符重载C++教程  
  • C 语言教程  
  • PHP中文教程  



  • 月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
    电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
    音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

    月光软件站·版权所有