简述WebService的使用

环境:

  vs版本:vs2013

  windows版本:win7

  IIS版本:IIS7.0

配置环境:

  主要针对于IIS

  ·首先,有很多人的机器上都没有打开IIS服务

    控制面板->程序和功能->打开或关闭windows功能(左侧,较慢,稍等)->Internet信息服务(默认打开的功能不能完全满足之后的需要,可以全部打开或者网上查询一下需要打开哪些)

  ·接着,在管理工具中打开Internet 信息服务(IIS)管理器

  ·最后,在网页上输入http://127.0.0.1后能看到IIS的主页,就ok了。(这里隐藏了一个问题,就是先安装了framework后安装IIS会有一个问题,稍后解决)

  

  防火墙配置:(如不配置,在其他机器上访问不到发布在你机器上的服务接口或者其他网站)

  网上有说直接关了防火墙,就好比人家惹到你,你非得整死他一样。。。好惨

  打开防火墙,点击左侧菜单里面的“高级设置”,会看到有“入站规则”和“出站规则”,添加一个入站规则端口就好了,这样,你在下面的流程中配置的那个端口,在其他位置访问你机器上的这个端口的时候,就不会被拦住了...何必置人于死地呢!

实现过程之编写WebService

  我使用的是vs2013,过程如下:

  1、创建空解决方案

  2、创建空Web应用程序工程(这里面没有web服务工程...)

  3、创建Web服务(asmx)

  这是IDE会给你初始化一个开发框架,你只需要在里面加上你需要公开的方法就可以了,[WebService]特性的使用就是用来修饰将要公布出来的服务接口。(具体原理这里不讲)

  代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Services;
 6
 7 namespace WebService
 8 {
 9     /// <summary>
10     /// WebService1 的摘要说明
11     /// </summary>
12     [WebService(Namespace = "http://MrHouJL/WebServices")]
13     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
14     [System.ComponentModel.ToolboxItem(false)]
15     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
16     [System.Web.Script.Services.ScriptService]
17     public class WebService1 : System.Web.Services.WebService
18     {
19
20         [WebMethod]
21         public string HelloWorld(string str)
22         {
23             return "Hello World" + str;
24         }
25         [WebMethod]
26         public string HelloWorld1()
27         {
28             return "Hello World 1";
29         }
30         [WebMethod]
31         public string HelloWorld2()
32         {
33             return "Hello World 2";
34         }
35         [WebMethod]
36         public string HelloWorld3()
37         {
38             return "Hello World 3";
39         }
40         [WebMethod(Description = "求和的方法")]
41         public double addition(double i, double j)
42         {
43             return i + j;
44         }
45         [WebMethod(Description = "求差的方法")]
46         public double subtract(double i, double j)
47         {
48             return i - j;
49         }
50         [WebMethod(Description = "求积的方法")]
51         public double multiplication(double i, double j)
52         {
53             return i * j;
54         }
55         [WebMethod(Description = "求商的方法")]
56         public double division(double i, double j)
57         {
58             if (j != 0)
59                 return i / j;
60             else
61                 return 0;
62         }
63     }
64 }

  功能编写完毕,接下来就是发布在刚刚准备好的IIS环境上面了。

  1、右键点击工程,发布,选择一个文件夹物理路径。

  2、打开IIS管理器

  3、右击“网站”,添加网站,配置“网站名称”,“物理路径”,“IP”,“端口”OK

  4、注意:这里面的身份验证要允许匿名,目录浏览要启用(双击点击右侧启用,为了之后可以浏览WebService目录)

  5、运行网站,你在浏览器中输入之前输入的IP+端口号就能访问到目录了(如有问题留言或者度娘)。

实现过程之访问WebService

  在这里主要是介绍使用后台访问:

  首先,在工程里面右键点击引用,添加服务引用,输入IP+端口,点击“转到”,应该就能看到之前的所写的服务接口了。起个名就添加进去了。

  添加webform界面,前台代码如下

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebService.WebForm1" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12     <div>
13
14     </div>
15         <asp:TextBox ID="TextBox1" runat="server" Height="15px" Width="50px"></asp:TextBox>
16 &nbsp;<asp:DropDownList ID="DropDownList1" runat="server">
17             <asp:ListItem>+</asp:ListItem>
18             <asp:ListItem>-</asp:ListItem>
19             <asp:ListItem>*</asp:ListItem>
20             <asp:ListItem>/</asp:ListItem>
21         </asp:DropDownList>
22 &nbsp;<asp:TextBox ID="TextBox2" runat="server" Height="15px" Width="50px"></asp:TextBox>
23 &nbsp;<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text=" = " />
24 &nbsp;<asp:TextBox ID="TextBox3" runat="server" Height="15px" Width="50px"></asp:TextBox>
25     </form>
26 </body>
27 </html>

  后台代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7
 8 namespace WebService
 9 {
10     public partial class WebForm1 : System.Web.UI.Page
11     {
12         protected void Page_Load(object sender, EventArgs e)
13         {
14
15         }
16
17         protected void Button1_Click(object sender, EventArgs e)
18         {
19             string oper = DropDownList1.Text;
20             double a = Convert.ToDouble(TextBox1.Text);
21             double b = Convert.ToDouble(TextBox2.Text);
22             ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
23             switch (oper)
24             {
25                 case "+": TextBox3.Text = ws.addition(a, b).ToString(); break;
26                 case "-": TextBox3.Text = ws.subtract(a, b).ToString(); break;
27                 case "*": TextBox3.Text = ws.multiplication(a, b).ToString(); break;
28                 case "/": TextBox3.Text = ws.division(a, b).ToString(); break;
29                 default:
30                     break;
31             }
32             Response.Write(ws.HelloWorld(TextBox3.Text));
33         }
34     }
35 }

  建议各位小主,还是自己写写较好。

遇到的问题

  HTTP 错误 500.21 - Internal Server Error处理程序“NickLeeCallbackHandler”在其模块列表中有一个错误模块“ManagedPipelineHandler”

  

   原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装

  解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

  如果还不行,可检查IIS的应用程序池,是否使用集成模式,如果不是则改成集成模式

  至此,整个webservice入门就告一段落了,大家仅作参考,如有问题,快来指正...

时间: 2024-10-11 11:24:55

简述WebService的使用的相关文章

简述WebS简述WebService与.NET Remoting的区别及适应场合

为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. Xml的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.Net 下的 Web Service结构比较简单,也比较容易理解和应用: 一般来讲在.Net结构下的WebService应用都是基于.Net framework以及IIS的架构之下,所以部署(Dispose)起来相对比较容易

简述WebService的使用(二)

上集回顾 上一篇我简单的介绍了一下整个WebService建立和后端访问的过程,如果感兴趣可以看一看:简述WebService的使用(一) //如有不懂请留言,觉得有用请点赞 内容提要 这一篇主要介绍一下WebService的ajax前端访问,侧重点是“跨域访问”.有兴趣的继续看过来··· 至于跨域访问的概念,我就说一句,就是“网站A想访问域名不同的网站B”(具体概念可以上网查),这在网络安全上是不被赞成的,大部分大型网站也关闭这个访问,然而需求依然在. 网上有很多解决方案,比如Ifame,代理

简述WebService与.NET Remoting的区别及适应场合 WCF

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/166990 为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. XML的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.NET 下的 Web Ser

asp.net 学习

1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性.一致性:最后再考虑用自写业务逻辑实现,但这种方式效率最低.编程最复杂,当为下下之策. 2.什么是事务?什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行

java开发总体知识复习

[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等) 上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助. 第一部分: Java基础(此部分面试题题目来自:http://www.ho

java面试题001

hibernate中离线查询去除重复项怎么加条件?? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); http协议及端口,smtp协议及端口 http:超文本传输协议    端口 80 smtp:简单邮件传输协议 端口25 编写程序,完成文件复制功能 Servlet创建过程及生命周期Servlet 在容器中运行时,其实例的创建及销毁等是由容器进行控制. Servlet 的创建有两种方法. 客户端请求对应的 Servlet 时,创建

asp.net一些面试题(转)

基础知识 什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP: 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数: 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的. 阐述面向接口.面向对象.面向方面编程的区别 面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法.设计中采用了封装.继承.抽象的手法

C#面试题 适合新手学习参考 懂了这些你也是高手

1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性.一致性:最后再考虑用自写业务逻辑实现,但这种方式效率最低.编程最复杂,当为下下之策. 2.什么是事务?什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行

.net(二)

1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性.一致性:最后再考虑用自写业务逻辑实现,但这种方式效率最低.编程最复杂,当为下下之策. 2.什么是事务?什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行