刚刚学习webservices,很多东西都不懂。写了个最简单的例子,在vs2010下直接使用默认的浏览器可以运行,如果要让Web服务脱离开发环境,则需要将其发布。下面是在XP系统下IIS5.1发布的。

第一步就是使用Vs2010在解决方案资源管理器中,右击Web服务项目,这里我的是WebService1,从弹出的快捷菜单中选择“发布”选型,则

在弹出的发布选项对话框中,从”发布方法中”选择“文件系统“,在”目标路径”设置发布路径之后就可以完成整个发布过程。

则整个Web服务拷贝到本地文件系统下,记住这个路径。

第二步 把第一步的Web服务文件夹拷贝到C:\Inetpub\wwwroot(也就是IIS的安装目录)下,这一步好像也可以不需要。

第三步:这一步最关键,就是在Inernet信息服务 里面设置默认网站

如图,这里我自己建立了一个默认网站da

建立默认网站的时候一定要指定虚拟路径,也就是你的Web服务器的实际在硬盘的存储路径,这个是必须的。
同时还要在da的属性中设置“文档”,在默认文档中点“添加”按钮输入xxx.asmx文件。如下图
至于那些什么安全属性之类的,慢慢考虑了.
安装完成这三步之后如果直接就访问'http://localhost/da/WebService1.asmx',会出错,以下是错误分析。

 

【名称以无效字符开头。处理资源 'http://localhost/da/WebService1.asmx' 时出错。第 1 行,位置: 2】
真的是不知道是什么原因,没办法在网络上大肆搜索,终于找到解决办法
运行
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i
便可以了。
但是aspnet_regiis.exe是什么工具呢?
下面是msdn给出的解释:

    ASP.NET IIS 注册工具 (Aspnet_regiis.exe)

    在 一台计算机上并行执行多个 .NET Framework 版本时,映射到 ASP.NET 应用程序的 ASP.NET ISAPI 版本决定了该应用程序    所使用的公共语言运行库 (CLR) 版本。使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe),管理员或安装程序可以方便地更    新 ASP.NET 应用程序的脚本映射,使其指向与该工具关联的 ASP.NET ISAPI 版本。该工具还可以用于显示所有已安装的     ASP.NET 版本的状态,注册与该工具耦合的 ASP.NET 版本,创建客户端脚本目录,以及执行其他配置操作。

    参数i的意思是:

    安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本,并更新 IIS 元数据库根目录和根目录下的脚本映射。

    只更新使用早期 ASP.NET 版本的应用程序的脚本映射。使用新版本的应用程序不受影响。

我说它就是在本机的iis上注册一下asp.net,这样asp.net的网页才可以执行,而在建立webservices项目的时候不也是建立asp.net的webservices么,所以注册一下就可以了