不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言 新浪微薄:土司阿哈

Web Service创建和发布以及调用

上一篇 / 下一篇  2008-08-14 15:23:54 / 个人分类:软件开发相关

1208328177
  • 自动化测试:
  • 测试文档:
51Testing软件测试网~:OsQ}$wj d

一、创建和发布Web Service
`1i;n(Xp0    Web服务方法中可以返回一个DataSet对象
(~q"BG1Q(ly~c(a0
    WEB服务可以说是下一代WEB应用程序的基础,无论客户端是WINDOWS应用、ASP.NET Web Form程序、甚至其他语言的客户端,都可以与同一个WEB服务通信,其平台和语言无关性使其有了广阔的发展空间。

-As L~!u$p051Testing软件测试网.|kRs`ZB L

利用VS2005和IIS我们可以很容易地发布一个WEB SERVICE,因为其中有几个细节需要注意,所在初学者常常在这里出现问题,现通过一个简单的例子说明如何创建和发布一个WEB SERVICE。

d:q4_6U*bU*O [,}051Testing软件测试网,I@H yr}aR+JGE

环境:Windows Server 2003,.Net FrameWork 2.0,IIS6.051Testing软件测试网 iAX1~u;p_

"WC{0M$^7~l ?@0工具:VS200551Testing软件测试网h$CCk0w n*H;~ {6n x{9d Z

51Testing软件测试网$k6US4}!Rsk

1.首先VS2005中新建一个WEB服务项目。51Testing软件测试网9_T6p3vo%|!v0^

51Testing软件测试网a(f+yep+a8rQ6T

打开“文件”-“新建”-“网站”,在对话框中选择“ASP.NET Web服务”,VS2005会自动生成一个Service.cs文件,包含如下代码:

#B'J {*CP4i k5m051Testing软件测试网Ay|U0s,D#i W

51Testing软件测试网Q k/Qi UF7c:U

usingSystem;
/_.e4Aa+|0
usingSystem.Web;
l2|/I~7zg%{0
usingSystem.Web.Services;51Testing软件测试网 lK4q{j](V
usingSystem.Web.Services.Protocols;
T.Ey(h6lN@t0
.Q%@:F'em&{ hN0[WebService(Namespace
=http://www.baidu.com/)]51Testing软件测试网{0RRb*M
[WebServiceBinding(ConformsTo
=WsiProfiles.BasicProfile1_1)]51Testing软件测试网(b;b4s~+~B~$j
publicclassService : System.Web.Services.WebService51Testing软件测试网 Ar I)Gosm
{
%x+@2OOHb0f0    
publicService () {51Testing软件测试网0QF*s+Vn v pJ2U
51Testing软件测试网0j$u;PK!k"rj
        
//如果使用设计的组件,请取消注释以下行
0H~;O3g9j3M0        
//InitializeComponent();
$|T mcw4F8Ja0
     }51Testing软件测试网;fp4T h4O$q'~

^\}:YF7L.m0     [WebMethod]
sI"{m(@OD0    
publicstringHelloWorld() {
_}Tc2j2qd*Q0        
return"Hello World";51Testing软件测试网(la:O]sR.a
     }
!e{R&E)? g8?0    51Testing软件测试网 KyRm RBl-H
}51Testing软件测试网dmZ]"T6^x

iy*Q6r k#S2m@` l ~0

+HYV/Lr|0你可以在这里修改自己的命名空间,加入自己的方法,但本文只是为了说明如何创建和发布,所以对Service.cs不做任何更改。51Testing软件测试网T xQ%Y.Q+\

iL;HF{!MX02.生成网站51Testing软件测试网a}~#kbf}

|*hA }JM%b[ l0很简单,“生成”-“生成网站”或直接Shift+F651Testing软件测试网cQR0m|#t_ R

51Testing软件测试网 rQ_X5uW [

3.发布网站

/HWF(d#|fB0?0

\)xzDV;Ts0也是简单,“生成”-“发布网站”,这里会弹出一个对话框,什么也不需要修改,记下发布的目录。比如:D:\WebSite1\PrecompiledWeb\WebSite1,我们需要目录下的文件。

:NklxW9Qd0

8a [+g z/V]1L1Y0注意:生成网站的路径中不能有空格!我在第一次时使用的路径中有空格!切记!!!

-LxV,TW8X5Ige:?0

'[8B+|q1GW0 51Testing软件测试网 dsa~2~Wn

nx't3r A#s04.配置IIS

1T/g?'a{051Testing软件测试网+P9L}/BtbgjAv

在默认网站中建一个虚拟目录, 比如webservice,将发布的目录路径指定到第3步发布这个目录中,然后确定即可。51Testing软件测试网 @/w.E#ezPquS

51Testing软件测试网;T wN GQm`

到这时,已经大功告成,你可以通过访问http://域名/webservice/Service.asmx来验证。如:http://localhost/WebService/Service.asmx出现如图,则说明应经正常51Testing软件测试网*{DQ6}yCr

L JKSp$U}0 51Testing软件测试网A)q;\1OOr5B

5k(w:c G+^v5^+lv0

\4I\~Jv;S\8qL)~P0

8AX,~L#PJ0注意:除了需要在IIS中对服务目录创建程序外,还要注意防火墙或杀毒软件的设置,我在首次访问service.asmx文件时,杀毒软件报告w3wp.exe在系统文件夹中生成asp_code.dll等,应该允许其他创建,否则会无法访问。

j/G%Y$rX2K*@ e"db0

.|\9jne EI*w0 

(C.ukx}M9[3Q0

o N i N!E&D~ao2z0通过这样简单的方法,你可以轻松建立自己的WEB服务,在同一站点还可以有多个WEB服务。51Testing软件测试网0Pt#U@g

二、c#的winform中调用Web Service API(VB6.0也可以调用该web服务)51Testing软件测试网-m*eu;V-o%uO
         现在以C# WinForm为例谈谈如何使用它 ,在服务中我们只有一个自动生成的方法:HelloWord(),其实现如下:
[WebMethod]51Testing软件测试网%V&sB6A-n/G;U+G

}'S1`rv.[0
publicstringHelloWorld(){51Testing软件测试网e_ o lG4E3k/C

(} y?]!yOX/e0
return"Hello World";51Testing软件测试网 {h,V Wj5z(Q|
51Testing软件测试网7r2{ oA2KIf
}
51Testing软件测试网SraU1ma

在WINFORM中我们将添加一个按钮,添加单击事件,在事件处理函数中弹出一个对话框显示HelloWord的结果。

;MOM+T ed ]051Testing软件测试网 r&LLcZ

1.添加WEB引用51Testing软件测试网:zJ t5J*Aig}zA

51Testing软件测试网&UjIC{OYr rWN

在VS2005中新建一个Windows应用程序项目,取名testwebservice,在项目中添加一个WEB引用,可在“解决方案资源管理器”的项目名上点右键添加,在弹出对话框中的URL输入框中输入WEB服务器的路径:如http://你的域名/web服务务路径/service.asmx,点击“前行”按钮后会搜索这个服务,并在右边报告找到的服务,并在左边显示service.asmx页面,我们在WEB引用名输入框中输入一个名字,这个将做为程序中WEB服务的命名空间名,这里我们取名mywebservice。

7i'v r5G8a4Zer/Q d051Testing软件测试网-GNy-MC ~

2.添加按钮单击事件51Testing软件测试网0Q5j0M \6k2} r

51Testing软件测试网G%k,n1d0JH6hOa

在Form中拖出一个Button按钮,双击单击事件处理方法,代码如下:51Testing软件测试网Lm5|kU6Xo+S

        privatevoidbutton1_Click(objectsender, EventArgs e)51Testing软件测试网&T3gIm+r6t
         {51Testing软件测试网2Ws"b?JvYA
             mywebservice.Service ws
=newtestwebservice.mywebservice.Service();51Testing软件测试网5Lf"Q_u ?)rU
             MessageBox.Show (ws.HelloWorld());
%NJ-|`7xf F X0         }
nB0z*Z F"w+Z0
51Testing软件测试网!ioN"r-}3R6a#G+D8W

其中mywebservice.Service ws = new testwebservice.mywebservice.Service()是实例化一个WEB服务对象,ws.HelloWorld()是调用WEB服务中的这个HelloWorld方法,其返回字符串将用MessageBox.Show()函数显示出来。

z vE O\ s CXd0

9{2d$N6[b7| k0好了,最简单的一个调用WEB服务API的WinForm例子已经完成了,编译运行,单击按钮,将会弹出对话框显示“Hello World”信息。

Xt k*pE,q2H6w0

(C#lUd4j2Y5xoq$~0重要的一点,在.net的WEB服务API中,除了一般的数据类型外,还可以返回结构和DataSet对象,有了这一点,就可以构建我们大多数的数据库应用了。51Testing软件测试网N3y3D D6r u

]7P$S$@)m!}7H9tT0好了,接下来的工作就是在WEB服务中添加你的API完成你的工作了。

2t k6{(uw(k7J0

TAG: 软件开发相关

 

评分:0

我来说两句

Open Toolbar