WebService的开发、发布及调用

来源:互联网 发布:淘宝厚底鞋 编辑:程序博客网 时间:2024/06/07 15:46


一、VS中创建Web服务项目。

二、WebService生成发布

三、网站发布

四、故障及解决方法

五、如何访问WebService

六、Win7下的WebService

 

发布和使用WebService需要首先安装IIS服务,IIS的安装过程这里就不在叙述,baidu上到处都是。

 

1、  VS中创建Web服务项目

在VS中“文件”->“新建”->“网站”->“ASP.NET Web服务”。创建过程很简单,和其他项目的创建过程基本相同,这里就不多说了。 

                这里我创建了一个名为MyWebService的解决方案,如下图所示,


                系统会自动添加一个名为Service的asmx文件,并在App_Code文件夹中添加一个同名的代码容器类。

                我们可以将这两个文件删除,然后依次在上点击右键,选择“添加新项”。在打开的窗口中选择“Web服务”,添加一个新的Web服务,命名为MyService。

我们同样可以将这两个名为Service的文件重命名为MyService。但在重命名的时候,有四个地方的名称是必须更改的。

1、  将Service.cs的名称改为MyService.cs

2、  将Service.asmx的名称改为MyService.asmx

3、  将Service.cs文件中的类名public class Service : System.Web.Services.WebService

改为               public class MyService : System.Web.Services.WebService

同时修改构造函数。

4、  将Service.asmx文件中Class属性指向MyService,修改如下

<%@ WebServiceLanguage="C#"CodeBehind="~/App_Code/MyService.cs"Class="Service"%>

改为

<%@ WebServiceLanguage="C#"CodeBehind="~/App_Code/MyService.cs"Class="MyService"%>

有点啰嗦了,其实文件中如果有名称不匹配的话,一般在调试的时候系统都会给出错误提示。

 

完成后的解决方案如图所示


注:Web.Config文件是生成时系统自动附加的

 

2、  完成创建以后,我们就可以调试生成解决方案。调试通过后,将WebService发布。具体步骤如下:

右键点击项目,在弹出菜单中选择“发布网站”弹出发布位置选择窗口如图所示,这里我们选择已经创建好的目录D:\MyService,



点击“确定”按钮发布完成,这时我们可以到D:\MyService中查看发布文件。如下图所示。


3、下一步,我们需要将Myservice文件夹拷贝到C:\Inetpub\wwwroot目录下(重要)。如下图所示


然后依次右击“我的电脑”->“管理”->“服务和应用程序”->“Internet信息服务(IIS)管理器”打开IIS管理器,或者在控制面板中,通过“管理工具”打开“Internet信息服务(IIS)管理器”,如下图所示



展开“网站”节点,右键点击“默认网站”节点,依次选择“新建”->“虚拟目录”,打开虚拟目录创建窗口。如下图所示。



点击“下一步”


输入一个别名,如“MyServiceTest”(此处不一定要和WebService文件名相同)。点击“下一步”进入路径选择窗口,如图所示。


其中路径名必须选择是C:\Inetpub\wwwroot目录下,新拷贝的WebService文件副本。如上图所示。

点击下一步,开始设置访问权限。作为测试,我们可以将其全部选中。如下图所示。


 点击下一步,系统会弹出安全警告,点击“是”按钮,然后点击“完成”按钮,完成WebService发布。

4、  截止到此,WebService已经发布完成,下面可以开始访问了。

选择我们刚刚创建的虚拟目录“MyServiceTest”,右键点击,选择“浏览”操作,打开浏览窗口,如图所示。




在上图右侧的浏览窗口中,点击MyService.asmx连接项,打开查看WebService中的可用接口。如下图所示:



注意:此过程会出现如下的错误提示

 

A)、配置错误 ,提示内容如下:
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 无法识别的配置节“connectionStrings”

源错误:
行 10:
行 11:   </appSettings>
行 12:  <connectionStrings/>
行 13: <system.web>
行 14:   <!--

源文件: C:\Inetpub\wwwroot\MyService\web.config    行: 12
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573;ASP.NET 版本:1.1.4322.573  

出现该问题的原因如下

我们使用vs2005创建WebService需要使用.netframework 2.0,而在Windows Server 2003中,iis默认.net环境是1.1。这时将发生不可识别的节点的问题。因为connectionStrings是.NET 2.0中的新增节点。

 

解决方法如下:

             首先确保系统中已经安装了.NET2.0,然后更改IIS使用的ASP.NET版本。操作过程如下:

打开windows“命令提示符”,即在运行中输入“cmd”,然后输入以下字符串

C:WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis-i –enable,执行安装操作。

如果当前系统未安装.NET 2.0平台,则会提示“系统找不到指定的路径”,否则,将执行安装操作,如下图所示:


安装完成后,再次尝试执行“浏览”操作。

B)、分析器错误,提示内容如下:

 

“/testSer”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 分析器错误 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。

分析器错误信息: 未能创建类型“MyService”。

源错误: 行 1: <%@ WebService Language="C#" CodeBehind="~/App_Code/MyService.cs" Class="MyService " %>

源文件: C:\Inetpub\wwwroot\ MyService \ MyService.asmx 行: 1 ------------------------

出现该问题的原因:

(1)、在步骤一中,重命名文件时,未完成所有文件名的统一修改。一般情况下,确保步骤一罗列出的所有位置的位置的文件名统一,即可解决该问题。

(2)、如果您可以保证没有文件名称错误。可以采用和上一个问题相同的解决方法来解决该问题。。

 

 

 

5、  远程访问

一般在远程机器上调用本机发布的WebService的地址即为本机IP+虚拟目录,例如,本次创建的WebService的访问地址如下:

http://192.168.2.94/MyServiceTest/MyService.asmx

 

查看该地址的方法为,打开WebService服务页 ,如下图所示


点击HelloWorld公共接口连接。跳转至HelloWorld定义页。如图所示。

 

点击“调用”按钮,将打开浏览器,显示调用结果。如图所示:


将浏览器地址栏中地址http://localhost/MyServiceTest/MyService.asmx/HelloWorld中的localhost换成本机IP(例如192.168.2.94),然后去掉最后的/HelloWorld,即为Webervice的访问地址http://192.168.2.94/MyServiceTest/MyService.asmx。

如果需要在远程C#项目中需要使用WebService,只需添加Web引用,然后在URL中输入以上地址即可。详细过程可以参考相关教材,或者求助谷、百两位大哥,遵从个人喜好。

 

6、  Win7下发布WebService

Win7下WebService的发布相对较为简单。从文件拷贝到创建虚拟目录的过程都与2003下完全相同,这里不再赘述。我们同样创建一个名为MyServiceTest的虚拟目录,如下图所示


然后在右侧的“MyServiceTest主页”区域中找到“目录浏览“图标,如下图所示


双击“目录浏览”图标打开目录浏览功能,如下图所示


点击右侧的“启用”按钮,启用目录浏览功能,如下图所示。


然后双击左侧的“MyServiceTest”虚拟目录节点,回到“MyServiceTest主页”选区。右键点击“MyServiceTest”虚拟目录节点,在弹出的菜单中选择“转换为应用程序”弹出应用程序转换窗口,如下图所示。


直接点击“确定”按钮。转成功,我们可以看到,此时虚拟目录图标已经发生了变化,如下图所示。


此时,在“MyServiceTest”虚拟目录节点上点击鼠标右键,依次选择“管理应用程序”->“浏览”即可在浏览器中查看MyService。

 

2011-9-8补充:在本机上发布的WebService,如果本机能访问,而远程机器无法访问,一帮是由于Windows防火墙处于打开状态造成的。将其关闭即可

 

本人亦初学WebService,以上均为个人见解及实际中遇到的问题和解决方法。希望对初学者有用。



原创粉丝点击