分享
 
 
 

VS。NET 我可以说不吗?(再谈Web Service)上

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

VS。NET 我可以说不吗?(再谈Web Service)

小气的神 2001.08.06

不久前我曾写了一篇有关用VS。NET Beta 2 来完成一个Web Service 的整个过程。这篇文章也是有关Web Service的,不过实现Web Service的整个过程完全是手工方式的,可以不依赖于VS。NET这样的开发工具。VS。NET开发Web Service是非常简便的,同样它也封装了许多底层的信息,它希望开发人员可以把精力集中在主要的逻辑实现和Service本身上。

至于对VS。NET你能否说不,那么要看你自己的理解了,好了言归正转,开始实现这个Web Service吧。

首先你必须已经成功安装Framework SDK Beta 2 ,然后用Notepad、IIS、IE、Dos 的Command Prompt就可以完成了。整个功能还是沿用上次的例子,一个HelloWorld 和Add的例子,如果你Download了两个Zip包,你会发现两者中许多代码是一样的。特别是客户端这边,它根本不关心你是用什么生成的。

整个的过程分为以下几步:

1. 手工生成一个 .asmx文件。

2. 设置一下你的IIS服务器。

3. 在浏览器中测试这个Web Service

4. 生成代理包

5. 编写客户端代码进行测试。

简单的看和上次在VS。NET中没有什么不同,唯一多的是要手工设置一下IIS,在VS。NET中是通过把这页设成Start Page然后F5来完成对IIS的设置的。有关设置的方面,dotnet比以前的ASP或Com有许多不同,全面了引进XML格式,这个不在这里说了。我们不要涉及这些。

具体的说:

1. 手工生成一个 .asmx文件。

在VS。NET中它自动生成一个和Project同名的. asmx文件,同样也会再自动生成一个 .asmx.vb 或 .asmx.cs 文件,其实实现Service你的代码是写在这个文件中的,当然你也可以直接在 .asmx文件中直接写,这样IIS第一次运行时会编译这个.asmx文件,在特定的目录下生成一个DLL文件。不过我喜欢用象VS。NET的方式来实现,这样更有封装性,实际中应用中也更安全。道理就象一开始我们直接在ASP中用ADO访问数据库,以后却自然的是用一个组件来完成这些,然后在ASP中调用这个组件一样。但如果你完全沿用VS。NET的作法,是无法编译通过的。VS。NET中的.asmx文件是这样的:

<%@ WebService Language="vb" Codebehind="Service1.asmx.vb" Class="WebService1.Service1" %>,然后是一个.vb 的文件,但如果我们照抄它,编译时需要-r许多库文件。你可以这样做,把这句话改成这样的:<%@ WebService Language="vb" class="MyWebService.Service1, WebService1" %> MyWebService是Namespace , Service1是你实现Service功能的类名,WebService1是你编译.vb成DLL的名字。然后在你的 .asmx.vb 中先加上这两句话:

Namespace MyWebService

End Namespace

然后你会发现我Copy了原来在VS。NET中的所有实现WebService的代码。然后可以存盘,将.asmx和 .asmx.vb放到一个目录中,比如:MyService,然后准备在Dos 的Command中编译这个Web Service了。使用下面的编译的编译命令:

VBC /t:library /r:System.web.Services.dll /r:System.dll /r:System.XML.dll /out:bin/WebService1.dll Service1.asmx.vb

确认你在MyService目录下打入这个命令,这样会在这个目录下生成的子目录Bin中发现这个DLL文件:WebService1.DLL 。如果这一切都没有问题,那么你过了第一关。

2. 在IIS中设置。

这就比较简单了,点中MyService目录右键选择共享,然后共享这个目录或是在管理工具中一步一步的新增一个虚拟目录都是一样的。但要效验你的Application Name:是否是叫WebService1和你的.asmx中class="MyWebService.Service1, WebService1" 这句对应。具体的你可以看附带的图02SetupIIS.jpg。刚才编译时用的 /out:bin/WebService1会在这里有用,如果我们什么也步配置,那么默认的是去/bin目录中看是否有这个文件,如果你忘了加这个参数,那么编译完成后最好Copy编译的DLL去当前目录的bin子目录

3. 完成IIS的设置后,可以用IE浏览器来测试了。

具体的你可以访问这样的URL:http://localhost/你共享的目录名/你的WebService.asmx 如果正常它会检查被编译的类,并返回一个有关这个Web Service的HTML视图。象附带的图中03IEOpenAsmx.jpg中的一样。其实它是由一个DefaultWsdlHelpGenerator.aspx的模板文件产生的,这个文件在C:\WINNT\Microsoft.NET\Framework\v1.0.2914\CONFIG\ 目录中。一千五多行代码,也许中文版出来以后这个模板也会成中文的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有