写了一个最简单的Web Service,大概就是打开VS,新建Web Service,然后在原有HelloWorld的基础上加了一个Web Method。代码大概如下:
- C# code
[WebMethod]public string HelloWorld(){ File.Create("d:\\1.txt"); return "Hello World";}[WebMethod]public int Add(int a, int b){ return (a + b);}
发布,创建Web Application并测试成功后,我新建了一个Console Application,在里面添加Service Reference,选择发布后的Web Service(比如http://localhost/.../testwebservice.asmx),namespace建了一个localhost,然后在main函数里写了如下代码调用:
- C# code
localhost.Service1SoapClient b = new localhost.Service1SoapClient();Console.WriteLine("b.Add(1,2) = ", b.Add(1, 2));Console.WriteLine("b.HelloWorld() = ", b.HelloWorld());Console.ReadLine();
运行结果是:
1. d:\1.txt 创建成功。(证明HelloWorld确实被调用了)
2. b.Add(1,2) = 。什么也没有
3. b.HelloWorld() = 。同样什么也没有。
我想问下,我这样调用有错误吗?为什么web service里的函数被调用了,却没有返回值?输出却什么也没有?谢谢。
------解决方案--------------------
Console.WriteLine("b.Add(1,2) = {0}", b.Add(1, 2));
Console.WriteLine("b.HelloWorld() = {0}", b.HelloWorld());