建立服务端:
在VS.net2008中 新建项目->选择asp.net服务应用程序

直接按F5运行, 点HelloWorld, 点调用, 可以看到XML返回结果就说明WebService能用了.
在vs解决方案资源管理器中, 右击Service.asmx , 选择查看代码 打开Service.asmx, 在HelloWord下自己写几个测试函数:(标记了WebMethod]的可以被远程调用,
(descrition是函数说明)
public
string HelloWorld() {
return
"
Hello World
";
}
[WebMethod(Description=
"
整数加法运算
")]
public
int Add(
int a,
int b)
{
return a + b;
}
[WebMethod(Description =
"
返回DataSet
")]
public DataSet GetDataSet()
{
DataTable dt =
new DataTable();
dt.Columns.Add(
"
name
");
dt.Columns.Add(
"
age
");
dt.Columns.Add(
"
sex
");
DataRow dr = dt.NewRow();
dr[
"
name
"] =
"
jack
";
dr[
"
age
"] =
"
25
";
dr[
"
sex
"] =
"
男
";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[
"
name
"] =
"
cherry
";
dr[
"
age
"] =
"
26
";
dr[
"
sex
"] =
"
女
";
dt.Rows.Add(dr);
DataSet ds =
new DataSet();
ds.Tables.Add(dt);
return ds;
}
按F5运行, 网页地址假设为http://localhost:2582/WebSite1/Service.asmx (下面客户端要调用). 可以看到三个函数, 服务端完成了.
客户端:
可以是Console, Web, Winform.这儿以Console平台为例:
新建一个Console项目.
在解决方案引上右击选择"添加服务引用..."
然后把上面的webService服务地址复制过来, 点下前往就能看到函数了.
修改下命名空间, 每个WebService要个独立的命名空间, 以防止与当前项目类名相同.
修改main函数:
static void Main(string[] args)
{
MyService.ServiceSoapClient client =
new MyService.ServiceSoapClient();
int result = client.Add(
1,
2);
MyService.ServiceSoapClient client1 =
new MyService.ServiceSoapClient();
int result1 = client.Add(
1,
2);
MyService.ServiceSoapClient client2 =
new MyService.ServiceSoapClient();
int result2 = client2.Add(
2,
2);
Console.WriteLine(result +
"
\n
" + result1 +
"
\n
" + result2);
//
DataTable DataRow DataView DataColumn都不能在webservices中传过来 只能用dataset了
DataTable dt = client.GetDataSet().Tables[
0];
foreach (DataRow dr
in dt.Rows)
{
string str =
"";
foreach (DataColumn dc
in dt.Columns)
{
str += dr[dc].ToString() +
"
\t
";
}
Console.WriteLine(str);
}
Console.ReadKey();
}
运行可以看到调用了. 客户端要新建项目, 服务端那个项目运行不要关闭.
如果WebService想发布, 选择发布网站, 把生成的dll, 拷贝到IIS运行程序目录中. 客户端修改app.config文件, 改成实际地址.