关于C# WebService的创建与调用

Web Service是可操作的分布式应用程序。它以SOAP作为基本通信协议,使用HTTP和XML进行可以穿越防火墙的自由通信错误提示:

* 出现 访问 IIS 元数据库失败

* iis 无法显示XML

解决:开始->程序->Microsoft Visual Studio 2005->Visual StudioTools中打开命令行,输入命令: aspnet_regiis -i 这样就会重新注册.net

另 还需在虚拟目录上打开属性对话框,点击ASP.NET属性页在“Asp.net version”项选择相应的Asp.net版本(1.1或者2.0)

* 无权限问题

因为我们现在用的都是NTFS格式的硬盘,把Everyone用户选择上或者在IIS中把允许匿名访问勾上

* 把Window系统集成用户去掉勾选

1.首先添加新项---Web服务---*.asmx

同时在App_Code文件夹下增加了一个*.cs文件

[WebMethod]

public string[] GetHotSearchByKeywords(string keyword)

{

return SearchKeywordManager.GetHotSearchByKeywords(keyword);

}

[WebMethod]是Web Service为我们提供的特性,它表示下面的方法是 Web 方法,允许Web使用SOAP调用该方法

一个Web Service文件中可以有多个[WebMethod],一个[WebMethod]只能对它下面的方法有效

写完以后,可以直接打开这个文件进行测试,成功后,即可发布

2. 发布Web Service

发布网站---创建虚拟目录---浏览Web Service页面---测试WebService方法

在发布的时候有可能会出现一点小问题,上面是出错的状况

打开Web Service的那个网址,就是要发布的WebService的URL

3. 调用Web Service

添加Web引用---实例化Web Service类---执行WebService方法

WebService 可能在本项目、非本项目、甚至在异地被调用

* 添加Web Service引用

* 在URL处填写发布的Web Service网址,单击前往,就会看到我们发布的WebService方法

* 可以改一下Web Service的引用名

调用这个方法

引用名.类名 s = new 引用名.类名();

* 添加完引用后,同时会看到App_WebReferences文件夹下已经添加了Web Service的相关文件

*.disco

*.discomap

*.wsdl