前两天,工作中遇到需要开发一个简单的webservice

网上搜索了不少文章,可是讲的很全面的还真是不多。特别是远程调用的例子,好难找。

所以自己搞定了之后,决定写一篇博客,从开发,配置到远程调用,一步步写个例子,供参考。

 

1,开发。

 

打开Visual studio.net 2008, 新建项目,选择ASP.NET WebService,给它起名WebServiceSample

系统自动生成一个helloworld

        [WebMethod]
        
public string HelloWorld()
        {
            
return "Hello World";
        }

前面的标示“[WebMethod]”即表示这个方法可以远程调用。

只有public 的函数可以标示为“[WebMethod]”.

下面我们自己写一个简单的加法函数:

Code

现在按“调试”按钮,出现一个对话框,直接按enter,出现一张网页,上方有两个链接,分别是HelloWorld和MyAdd

点选MyAdd进入,可以看到一个调试器,在其中输入i和j的参数,就可以调试MyAdd这个函数啦。

要留意的是,这边调试成功的话,在IIS中调试还是有可能会因为各种原因失败,因为本机调试和远程调试,许多方面是不同的,比如对本地文件的访问权限等。

远程调试的时候,WebService和一般的ASP.Net网站一样,用户只能访问wwwroot下面的文件哦。

这张页面下方,有远程调用本WebService的三种方法和各自的返回语句。

这三种方法调用的时候只是将发送和接受的内容加以改变而已。微软推荐的方法是上面两种。 

至此,一个最简单的WebService开发完成

 

2,配置

最最简单的配置方法:

把开发目录下的Web.Config,Service1.asmx,bin目录(只需要copy下面的WebServiceSample.dll)copy到C:\INetPub\WWWRoot\文件夹下。

如果本机的IIS服务没有安装或者启用的话,在控制面板里安装或者启用IIS服务。

如果在浏览器中输入http://localhost/service1.asmx会出现刚才调试的时候出现的页面的话,就说明配置成功啦。

 

3,远程调用

本机调用当然不算远程啦。但是我这边远程调用是为了区别直接调用dll说的,使用http方式的调用。其实使用http方式调用,不管是在本机上访问localhost还是在别的机器上访问本机的ip地址,都是一样的。

在调试页面,有三种调用方法的示例,下面我门以第三种方法为例子展示一下调用代码。

 

发送:
POST 
/Service1.asmx/MyAdd HTTP/1.1
Host: localhost
Content
-Type: application/x-www-form-urlencoded
Content
-Length: length

i
=string&j=string
接收:
HTTP
/1.1 200 OK
Content
-Type: text/xml; charset=utf-8
Content
-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://tempuri.org/">int</int>

 

代码如下:

 

Code

要用另外两种方法调用的话,要自己生成XML文本,还有要修改Content-Type的值。

posted on 2009-04-03 17:20  芙蓉  阅读(4614)  评论(6编辑  收藏  举报