WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。
1. 在VS.NET(2.0) 中建立一个 WEB Service的项目,然后在产生的 .asmx 的类中实现你的功能也就是Service
2. 在打开的WebService.cs中已经内建了一个 HelloWorld的调用
3. 我们可以在建一个加法的例子:
public int Add( int a, int b )
{
return a+b ;
}
4. 按F5编译运行一下,可以看到效果了,生成的结果是以xml的形式出现。为所有的平台所调用
5. 你需要建立一个Web Service的客户,让它得到你提供的这些服务获得”HelloWord”和相加的结果。所有你需要产生一个SDL文件,它和IDL相似,IDL编译会形成一个类型库,使VB的开发中可以前期绑定,然后VB,InterDev开发环境中可以显示智能化的帮助。
有三种方式可以产生:手工自己写,使用dotnet工具,由.asmx文件生成。自动的生成的可以用于观看和测试不能保存下来,如果要保存你需要使用一个Framework SDK 的工具 disco.exe 它在C:/Program Files/Microsoft.NET/FrameworkSDK/Bin 目录中你可以先在IE中这样试 : http://localhost/WebService1/Service1.asmx?WSDL ,如果成功会有一个XML显示在IE中,这也是自动方式了。然后你在dos提示符下 disco http://localhost/WebService1/Service1.asmx?WSDL 意思是你想保留这个文件,执行成功后你可以看到这个 .wsdl的文件。
6. 然后有些象Java也象VB,容易理解了,那就是你要生成一个代理类,然后在客户端调用这个类中的方法,也就是Services。 这时你需要用Framework SDK中的另一个工具 wsdl.exe 用它生成一个.cs .vb 或 .js的文件,编译这个文件生成一个DLL,就是所谓的代理类了。然后就可以在dotnet的网页,GUI窗体,web窗体或控制台程序中调用HelloWorld 和Add 函数就完成全部了。具体的语句:
wsdl /out::myWebService1.cs http://localhost/WebService1/Service1.asmx
成功后你可以看到这个CS文件生成。
7. 然后编译这个类
csc /out:myWebService1.dll /t:library /r:System.XML.dll /r:System.Web.Services.dll myWebService1.cs
如果成功DLL也生成,现在就差写一个表现层也调用这个Service了。我手工方式就阻在这个表现层上,我
想是我生成的.wsdl没有被用上,也就是找不到这个Services 。
8. 然后就可以在你的应用中调用这个组件了:
dim obj as new Service1
dim retStr as string
dim retIntVal as string
retStr = obj.HelloWorld()
retIntVal = obj.Add( 300 , 500 )
这样看来dotnet还是很有意思的,至少向你展现了一种不同的东西,我想用过Com或Com+的大侠们很容易想起这类似一种远程或Internet方式的Com,以前的com有致命的弱点,无法穿透防火墙,现在这种方式不仅灵活而且协议更加标准。底层的它封装和隐藏了SOAP和其它的网络协议,中间靠XML来传递数据和信息。你只用专心在Service功能上。
想想新浪的新闻服务如果有这样的Web Service接口,大家的网站上只有简单几句就可以有新闻显示了。同样股票站点可以为你提供股票信息,旅游航空公司提供旅游和航班信息。太多了,而且时时更新,我想以后会有一个Web Service的接口或门户网站,它也会象Yahoo一样成为众所周知的入口。