精华内容
下载资源
问答
  • Win10 IIS Web服务器安装与配置

    万次阅读 多人点赞 2018-01-04 21:53:00
    这几天课程实训,使用 IIS 配置服务器,课本上内容太久,老师也没有讲过,自己摸索了一下,所以记录一下 安装 IIS 打开程序和功能,选择左边启用或关闭 Windows 功能,建议根据下图勾选,确定后等待安装完成 ...

    欢迎关注我的个人博客:https://careyq.cool

    这几天课程实训,使用 IIS 配置服务器,课本上内容太古老,老师也没有讲过,自己摸索弄的,所以记录一下

    安装 IIS

    • 打开 程序和功能,选择左边 启用或关闭 Windows 功能,建议根据下图勾选,确定后等待安装完成
      IIS

    打开 IIS

    • 直接使用 Cortana 搜索管理工具,打开选择 Internet information Services(IIS)管理器
      IIS

    • 点击左边栏,在 计算机 名下,网站 文件夹下已经默认存在一个网站
      IIS

    配置 IIS

    • 选择默认的站点,点击右边高级设置,可设置网站的目录

    默认在 C盘已经存在一个目录

    • 点击右边的 绑定,可修改网站的端口等信息

    IIS

    其中:
    IP地址 —— 一般填写本机的IP地址
    端口 —— 任意端口都可用,不过需要注意不能被别的端口占用,默认为 80
    主机名 —— 这里填写购买的域名,没有则使用上面 IP地址访问
    

    测试验证

    • 选择右侧 启动,然后点击 浏览xx,浏览器中出现配置好的网页则成功

    IIS
    图为 Win10 自带 IIS 默认网站样式,目录位于 C盘inetpub文件夹中

    这里没有设置 IP地址,直接访问 http://localhost/ 直接进入,默认端口80,就相当于`localhost`
    设置 IP地址后,则需要使用 IP地址才可访问,例如:
    
    - IP地址:192.168.1.1,端口:4000
    - 浏览器地址则为:http://192.168.1.1:4000
    
    一般不能正常访问,原因都是出在「安装 IIS」处,应回去好好查看安装的功能
    
    展开全文
  • web服务器、Web中间件和Web容器的区别

    万次阅读 多人点赞 2018-11-25 20:36:21
    目录 Web服务器 中间件 容器 ...所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让我们通过http协议访问到。但是又有很多地方会说Tomcat是Servlet容器,而又有很多地方...

    目录

    Web服务器

    中间件

    容器

    总结

    Web开发的选择


    我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让我们通过http协议访问到。但是又有很多地方会说Tomcat是Servlet容器,而又有很多地方会说Tomcat是Web中间件!那么,他们到底是Web服务器还是容器,还是Web中间件呢???

    怀着这个问题,我查遍了网上所有的资料,终于把这几个概念好好的整理了一下。

    Web服务器

    广义的web服务器(Web Server):提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、apache、nginx等。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。

    所以,我们可以把 IIS、Apache、Nginx、Tomcat等都称为Web服务器,因为他们都提供了web服务。

    中间件

    中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。

    Web中间件就是提供web应用软件和系统软件连接的软件的一个总称。

    我们来看看J2EE提出的背景:

    1、企业级应用框架的需求:在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。

    2、 为了通用必须要提出规范,不然无法达到通用:在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。

    并且中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。

    所以说我们可以把Tomcat、Weblogic、Jboss等叫做Web中间件。

    相关文章:Web中间件

    容器

    容器:容器是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。例如:tomcat(servlet容器),Jboss(EJB容器)。这些容器提供的接口严格遵守J2EE规范中的web application 标准。

    web容器:我们把遵守J2EE规范标准的web服务器就叫做J2EE中的web容器。处理 web服务的容器,例如tomcat(servlet容器),IIS(asp容器)。web容器用于给处于其中的应用程序组件(ASP、JSP)提供一个环境,是中间件的一个组成部分,它实现了对动态语言的解析。比如tomcat可以解析jsp,是因为其内部有一个servlet容器。

    EJB容器(Enterprise java bean ):更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而 EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如servlet不用关心http的细 节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

    所以说,我们也可以把 IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)等叫做Web容器

    总结

    通过上面的解释,不知道你有没有搞清楚这几者之间的区别!其实,对于这些名词,也并没有一个十分清楚的概念说这个就是属于这个,而不能属于那个。他们之间很多是包含关系。

    web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
    web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
    web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

    所以应该是  web服务器>web中间件>web容器

    Web开发的选择

    • 一般本地开发的话,小项目,或者是个人开发建议的话,php使用apache、asp使用IIS、jsp使用tomcat
    • 大型的项目就用 jboss 或 webloigc
    • 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有 jboss、glasshfish 等

    相关文章:Web中间件



     

    展开全文
  • web服务器和web应用服务器的区别

    千次阅读 2018-06-10 20:22:43
    首先,web服务器和web应用服务器不是同一个概念。起初,我也把两者混为一谈。现在说说自己对这两个的理解,如有不对之处,欢迎指出。 web应用服务器 在java web开发时,最早接触的web服务器是tomcat,其实tomcat是...

    首先,web服务器和web应用服务器不是同一个概念。起初,我也把两者混为一谈。现在说说自己对这两个的理解,如有不对之处,欢迎指出。

    web应用服务器

    在java web开发时,最早接触的web服务器是tomcat,其实tomcat是web应用服务器,任何的 web项目资源文件如果没有部署 在tomcat应用服务器中(资源文件没有放在tomcat安装目录中),都将不能访问得到。
    类似的web应用服务器还有 weblogic 和 jetty等。

    web服务器

    真正意义上的web服务器就两个 : IIS 和 apache
    web 服务器可以提供代理服务,即可以访问本地磁盘上所有的资源文件,即使项目资源文件没有放在服务器中。
    常见的web服务器有: nginx , nginx 是Apache 提供的web服务器,nginx是一款高性能、轻量级的web服务器和反向代理服务器以及邮件代理服务器。支持高并发,并发量50000 。nginx不能解析动态的jsp页面。

    区别:

    **web服务器只能解析静态页面,即html页面,它请求的路径是固定的。
    而web应用服务器可以解析动态的jsp页面,即它请求的路径是动态生成的,负责的是请求的逻辑处理。**

    所以一般在web项目开发 中,apache+tomcat+nginx联合使用,访问静态资源时用apache解析,访问动态资源时用tomcat解析,nginx作为反向代理服务器,同时支持高并发。

    展开全文
  • 19Web服务

    千次阅读 2019-05-27 17:10:00
    Web服务 Web服务 Micosoft.Net平台架构中的分布式系统主要包括两部分:用ASP.Net技术构建服务器端动态网页,以及Web服务(Web Service或XML Web Service)。前边章节已详细介绍了构建服务器端动态网页的方法,本...

    Web服务


    Web服务

    Micosoft.Net平台架构中的分布式系统主要包括两部分:用ASP.Net技术构建服务器端动态网页,以及Web服务(Web Service或XML Web Service)。前边章节已详细介绍了构建服务器端动态网页的方法,本章将介绍Web服务的基本概念和构建方法。

    13.1  Web服务的概念和用途

    Web中无论是静态网页还是动态网页,数据都被嵌入到网页中,网页的服务对象都是人,用户可以很容易阅读这些网页。但如果一个程序使用这种方式获得数据,会是十分困难的,程序必须从网页中把数据分离,才能加以利用。而用一个程序在Web中获得数据有时又是十分必要的,例如:一个气象台总站希望通过Internet获得各个基层气象台的各种资料,在网上以统一的网页对外发布。气象台总站希望各个基层气象台提供一个Internet的服务,能根据总站的要求,自动提供相应的资料。类似的例子很多,例如一个大单位的总部和下属单位之间信息系统的整合,一个综合网站希望自动获得其它网站提供的信息等等。这种需求实际上就是Web服务。

    为实现这种功能有很多困难,各个基层气象台使用的系统可能完全不同,即使使用相同的操作系统,也可能使用不同数据库系统,数据库中定义的字段可能不同,数据库应用程序可能使用不同的语言编制,即使这些完全相同,还可能数据的表示方式不相同,例如数据格式,数据的位数等等。为解决这些问题,已提出了许多方案,例如:微软的分布式控件对象模型(DCOM)、对象管理组织(OMG)的公用对象请求代理程序体系结构(CORBA)、SUN公司的远程方法调用(RMI)等等,但这些方法都不能很好的解决以上问题。

    Micosoft.Net的Web服务为实现这种功能提供了完整的解决方案。Web服务使用XML描述数据,保证程序可以理解数据;用SOAP协议把XML数据封装为消息,SOAP(Simple Object Access Protocol,简单对象访问协议)是基于XML的消息传递协议,由于是基于XML,保证了不同系统的不同程序之间,只要支持SOAP,都可以互相通信;用Http协议在Internet上传输SOAP消息。用Micosoft.Net的Web服务实现气象台总站所需功能的大概思路是这样的,每个基层气象台在自己的系统中提供一个Internet远程调用函数,该函数用HTTP协议接受用SOAP表示的调用,并把函数的返回值用XML扩展标记语言描述,用SOAP表示后,用HTTP协议返回给调用者。气象台总站只要使用HTTP和SOAP协议逐一调用这些Web远程函数,就可以获得各个基层气象台返回的用XML表示的资料了,用程序很容易分析、提取XML表示的资料中的数据。由于这些协议都是被不同系统广泛接受的协议,XML数据可以被不同系统的不同程序所理解,也就解决了以上所提出的问题。

    由以上叙述可知,Web服务不追求代码的可移植性,而是提供一个可行的解决方案来实现不同系统程序之间的数据通讯和理解。有许多Web服务的定义,比较简单又比较容易理解的描述是:Web服务是一个独立于系统的,可通过HTTP、SOAP和XML协议进行访问的Web远程函数库。

    刚才讨论的问题只是Web服务的几个应用,还有许多其它用途,例如:

    应用程序集成

    可以使用Web服务以一种集成的方式整合表面上看上去完全不同的现有应用程序。例如许多公司的每个部门都有定制的软件,产生一系列有用但是孤立的数据和业务逻辑。为了管理上的方便,非常有必要把这些应用程序功能集合到一起。利用Web服务,就有可能把现有的应用程序中的数据和功能以Web服务方式提供给其它部门。然后可以创建一个集成的应用程序,增强各部门之间的互操作性。

    代码复用

    在软件开发行业,大部分软件开发者都依赖代码复用。过去软件开发者为了利用他人已经实现的代码,或者将代码段复制到自己的代码中,做一些改动以适应自己得需要,或者在服务器或个人计算机上安装一个库,让应用程序来访问这个库。这将使得代码有很多个版本,而这些版本间可能只有细微差别,却分散在各个地方。当代码最初的开发者决定对代码更新一下或者改正一下错误,要把这些改变告诉所有使用这些代码的开发者的时候,将是非常困难的。如果我们把代码放在一个中心位置存储,让所有人都访问这儿,这不是很好吗?这样原创者可以在做了一些增补或者修正之后,能够立即提供给所有使用它的人。用Web服务可以实现以上设想,远程调用Web服务中的方法,就象调用本地函数一样方便。

    工作流程解决方案

    有些工作是非常复杂的,例如货物的运输,可能要使用多种交通工具,火车、汽车、轮船等,是一个非常复杂的流程,流程的每一个环节都由不同部门的不同的程序进行控制,如何建立这些控制程序之间的联系,是十分重要的。使用Web服务是一个很好的解决方案。通过Web服务,使各个流程控制程序建立联系,完全实现货物运输的自动控制和管理。

    新的销售方式

    现在软件的销售方式一般是用户把软件买回去,安装在自己的计算机中。有了Web服务,就可以提供软件的使用服务,用户可以远程使用应用软件,按次收费。

    由Web服务组成的自动化系统

    不远的将来,信息家电将要联接到Internet网上,PDA、手机,甚至各种嵌入式设备也要上网,这些设备和其它设备之间通过Web服务建立联系也是一种可行的方案。

    13.2  建立Web服务

    Web服务仍采用客户/服务器模式(Client/Server)。本节介绍在服务器端应做的工作,包括建立供客户端调用的Web服务方法,以及为了客户端使用Web服务方法,提供给客户端描述该Web服务的WSDL文档。

    13.2.1       用记事本建立Web服务

    例子e13_2_1A建立一个Web服务文件和建立一个普通网页文件的步骤基本一样,下边是一个最简单的Web服务文件,其它程序访问其中的Web服务方法时,将返回参数a和b的和,具体程序代码如下:

    <%@ WebService Language="C#" class="MyClass"%>

    using System;

    using System.Web.Services;

    public class MyClass:WebService

    {     [WebMethod]

    public int MyWebMethod (int a,int b)//注意形参的名称将在图13.2.1C中出现

    {     return a+b;

    }

    //其它WebMethod 

    }

    在文件中,第一行的语句表示这是一个Web服务文件,使用C#语言,Web服务的类名是MyClass。第4条语句创建了一个以WebService类为基类的派生类MyClass,该类必须是一个公有类。建立的Web服务类不必以WebService类为基类,但从WebService类派生,可获得对ASP.Net对象(例如Application和Session)的访问权限。如以WebService 类为基类必须引入命名空间System.Web.Services。可供网上其它程序访问的方法叫Web服务方法,在其头部必须增加关键字[WebMethod],表示这个方法是一个Web服务方法,这个方法必须是一个公有方法。

    建立文件后,以asmx为扩展名存盘,存到网站的宿主目录中或其任意子目录中,本例以e13_2_1.asmx存到网站的宿主目录下的WriteBook目录中。现在使用浏览器测试这个Web服务方法,使用URL定位这个Web服务方法,在浏览器中URL地址栏中输入如下地址:http://localhost/ WriteBook/e13_2_1.asmx,浏览器中显示如图13.2.1A。

                           

    图13.2.1A

    在网页中可以看到建议:"此Web服务使用http://tempuri.org/作为它的默认命名空间。建议:在使XML Web service公开之前,请更改默认命名空间"。这段话的意思是说为了和其它Web服务相区别,在发布Web服务时,必须有唯一的命名空间,可以使用自己单位的网址或IP地址作为此命名空间。修改e13_3_1A.asmx为e13_3_1.asmx如下:

    <%@ WebService Language="C#" class="MyClass"%>

    using System;

    using System.Web.Services;

    [WebService(Namespace="http://202.206.96.204/")]

    public class MyClass:WebService

    {  [WebMethod]

       public int MyWebMethod (int a,int b)

       {    return a+b;

       }

       //其它WebMethod 

    }

           再一次用网址http://localhost/e13_2_1.asmx运行,将不出现建议部分,如图13.2.1B所示。

     

    图13.2.1B

    点击MyWebMethod,浏览器中显示如图13.2.1C。

     

    图13.2.1C

    在编辑框中输入两个加数分别为10和20,然后点击"调用"按钮,打开另一浏览器窗口如图13.2.1D,这是用XML标记表示的调用Web服务方法MyWebMethod返回的结果。请注意,这里运行只是一种测试,实际上应在其它计算机上生成一个调用此Web服务的客户端程序,可以是Windows应用程序,也可以是控制台程序,或者是ASP.Net应用程序,即可以是Micosoft.Net系统程序,也可以是其它系统程序,例如Java程序,Linux程序等等,下节将介绍这方面的知识。

     

    图13.2.1D

    13.2.2       用VS.Net建立Web服务

    如果使用VS.Net建立这个Web服务文件,具体步骤如下:

    (1)  新建asp.Net web服务项目,在"位置(L)"编辑框中键入:http://localhost/e13_2_2,其中e13_2_2就是项目的名字。单击"确定"按钮,创建项目。

    (2)  可以看到标题为"Service1.asmx.cs(设计) "窗口。右击该文件,在弹出快捷菜单中单击"查看代码(C)" 菜单项,打开Service1.asmx.cs源文件如图13.2.2。

     

    图13.2.2

    (3)为了在访问时不出现建议提示,在Service1类定义的前边加入如下语句:[WebService(Namespace="http://202.206.96.204/")]。

    (4)   文件中已有一个Web服务方法HelloWorld,但被注释掉。下面增加一个Web服务方法MyWebMethod如下:

    [WebMethod]

    public int MyWebMethod(int a,int b)

    {     return a+b;

    }

    (5)  现在用IE浏览器测试这个Web服务,按F5运行,将显示类似图13.2.1B的界面(类名不同),点击MyWebMethod,浏览器中显示如图13.2.1C。在编辑框中输入两个加数分别为10和20,然后点击"调用"按钮,打开另一浏览器窗口如图13.2.1D,这是用XML表示的调用Web服务方法MyWebMethod返回的结果。

    13.2.3       服务描述语言(WSDL)

    Web服务提供了一种服务,允许Internet上的计算机使用HTTP和SOAP协议远程调用Web服务方法。大家都知道,为了使用一个函数,首先要看一下函数的使用说明。Web服务方法也存在同样的问题,特别是SOAP协议,它采用XML标记语言描述Web服务中传递的消息,而XML标记语言是可以定义自己的标记的,但SOAP并没有提供一种通用的XML标记供Web服务使用,不同的Web服务中SOAP的XML标记定义可能不同。因此,为了使不同系统调用其它系统中的Web服务,必须对调用Web服务的方法及Web服务返回的数据的格式做详细说明即服务描述,而且这种描述也应采用被广泛接受的协议。

    WSDL(Web Services Description Language)中文名称为Web服务描述语言,用来对Web服务进行说明。WSDL是基于XML的,用WSDL生成一个XML文档,可以提供关于Web服务的操作信息,例如,抽象形式的服务接口信息、数据传输的具体访问协议和格式、供客户端使用该Web服务的细节等等。服务描述是一个使用WSDL语言的XML文档,定义了Web服务能理解的Web服务消息格式。服务描述起一个协定的作用,用来定义一个Web服务的行为并且指示潜在的客户如何与之交互。WSDL文档最重要的的用途就是在客户端生成代理类,详情见13.3.3节。

    由于在VS.Net可以自动生成WSDL文档,这里就不介绍WSDL了。可以通过下边方法看到VS.Net自动生成的WSDL文档,例如查看上节生成的Web服务,在浏览器中URL地址中输入http://localhost/ e13_2_2/Service1.asmx?WSDL,浏览器中显示该Web服务WSDL文档。或者单击图13.2.1B中的服务说明,也可看到这个WSDL文档。

    13.3  基于.Net的Web服务客户端程序

    Web服务客户端程序是用来调用服务器端的Web服务方法,前边使用浏览器调用Web服务方法,只能算做一种测试,通过这种测试,可以验证Web服务方法的正确性,发现错误。作为客户端程序,无论在何处,采用那种操作系统,希望只要知道Web服务的所在网址,就可以调用其相关Web服务方法。Web服务客户端程序一般应在Web网上的另一台计算机中,仅仅做实验或学习,也可以和Web服务在同一台计算机中。本节介绍如何实现基于.Net的Web服务客户端程序。

    13.3.1     调用Web服务方法采用的协议

    客户端可采用3种协议调用Web服务方法: HTTP-GET、HTTP-POST和SOAP协议。HTTP-GET和HTTP-POST协议是Web网页传递参数的标准协议。使用HTTP-GET调用e13_2_1.asmx 中的Web服务方法,可在IE浏览器的地址栏中输入如下内容,将返回图13.2.1D网页,注意a和b是Web服务方法的形参名称。

    http://localhost/WriteBook/e13_2_1.asmx/MyWebMethod?a=10&b=20

    如果使用HTTP-POST调用e13_2_1.asmx 中的Web服务方法,可采用如下网页:

    <html>

      <body>

        <form method="POST" action="e13_2_1.asmx/MyWebMethod">

          输入第1个加数a:<input name="a" Value=""><br>

          输入第2个加数b:<input name="b" Value=""><br>

          <input type="submit" value="调用Web服务">

        </form>

      </body>

    </html>

    用记事本程序输入此网页,注意a和b是Web服务方法的形参名称,以e13_3_1.htm为文件名存入e13_2_1.asmx所在的文件夹。用浏览器打开此网页,浏览器显示效果如下。按图所示输入两个加数,单击调用Web服务按钮,将返回图13.2.1D网页。

     

    图13.3.1A

    使用HTTP-GET和HTTP-POST协议传递Web网页参数只能采用变量名/变量值对,无法传递象DataSet、二进制文件等数据类型,为了传递复杂数据类型,可采用SOAP协议。SOAP(Simple Object Access Protocol,简单对象访问协议)是基于XML的消息传递协议,由于是基于XML,保证了不同系统的不同程序或组件之间,只要支持SOAP,都可以互相通信,更多SOAP规格的信息,请看W3C Web站点(http://www.w3.org/TR/soap)。如使用SOAP协议调用e13_2_1.asmx 中的Web服务方法,必须对调用的Web服务方法和方法参数用SOAP协议封装,实现比较复杂,.Net系统一般采用创建代理类的方法,因此不再介绍用SOAP封装的方法了,以后章节将详细介绍创建代理类的知识。

    13.3.2       VS.Net建立Web服务客户端程序

    Web服务客户端程序用SOAP协议调用远程的Web服务方法,Web服务客户端程序必须把程序的调用及其参数转化为SOAP协议,传送到Web服务。调用Web服务方法后,Web服务方法返回以XML表示的结果,还需要对XML文档进行解析,得到指定类型的数据。这些工作比较繁琐。程序员希望采用象普通编程语言调用一个方法那样调用Web服务方法,返回指定类型的数据。.Net系统采用创建代理类的方法实现这一目的。所谓代理,就是在客户端生成本地对象,作为远程Web服务方法的前端,该代理的功能是,Web服务客户端程序用一般程序语言那样调用Web服务方法,代理程序负责转换为SOAP协议,用SOAP协议调用Web服务方法,由代理程序负责获得Web服务方法返回的数据,由于这些数据也用SOPA协议表示,也要由代理程序转换为一般程序语言能够理解的数据类型,传送给Web服务客户端程序。

    VS.Net工具提供了在Web服务客户端创建代理类的方法,客户端程序不必一定和Web服务在同一台计算机中,可以在任意一台Internet网中的计算机中。客户端程序可以是windows应用程序、ASP应用程序,也可以是另一个Web服务程序。下边以创建windows应用程序为例,介绍在Web服务客户端创建代理类的方法,具体步骤如下:

    (1)   打开VS.Net,新建C#语言windows应用程序项目,项目命为e13_3_2,在窗体中增加一个按钮,标题为"调用Web服务",单击按钮将调用Web服务的Web方法,在窗体中增加2个文本框,用来输入两个加数。用3个Label控件作为提示信息,属性Text分别为:加数a、加数b、和。用一个Label控件显示调用Web服务的Web方法后返回的结果。设计界面如图13.3.2D。

    (2)   建立Web服务客户端代理。单击VS.Net菜单"项目"|"添加Web引用"菜单项,弹出标题为"添加Web引用"的对话框如图13.3.2A。

     

                                                         图13.3.2A

    (3)在对话框中的"地址(A) "栏中输入Web服务的URL,这个Web服务一般应在远程计算机中。本例Web服务和客户端在同一台计算机中,即是在13.2.2节中用VS.Net建立的Web服务,其URL为http://localhost/e13_2_2/Service1.asmx。不能使用例子e13_2_1建立的Web服务,因其不能自动创建WSDL文件。然后单击"地址(A)"栏右侧箭头图标,V S.Net自动查找指定URL的WSDL文件。见图13.3.2B。

     

    图13.3.2B

    (4)   单击标题为"添加引用"的按钮,在解决方案资源管理器中,可以看到一个新的"Web References"。见图13.3.2C。引用Service1采用如下格式:localhost.Service1。

    (5)   为按钮增加事件函数如下,注意引用Service1的方法。

    private void button1_Click(object sender, System.EventArgs e)

    { int x,y;

    x=Convert.ToInt16(textBox1.Text);

    y=Convert.ToInt16(textBox2.Text);

    localhost.Service1 ws=

    new localhost.Service1();

    label4.Text=ws.MyWebMethod(x,y).ToString();

    }

    (6)   按F5,运行,输入2个加数,单击标题为"调用Web服务"按钮,显示和为30。

     

     

     

     

     

     

    图13.3.2D                                   图13.3.2C

    13.3.3   WSDL程序

    .Net Framework的SDK提供了一个命令行程序WSDL.EXE,可以自动为Web服务客户端程序生成一个代理程序。下边介绍生成代理程序的具体方法。WSDL.EXE必须在控制台界面下使用,以生成例子e13_2_2中的Web服务的客户端代理类为例,使用的格式如下:

    wsdl /l:C# /OUT:Service1.cs /protocol:soap http://localhost/e13_2_2/Service1.asmx?WSDL

    其中,/l参数指定编制Web服务客户端程序使用的语言,可以是vb、C#和Jscript,默认值为C#;/OUT参数指定生成的代理类文件的路径和文件名,默认值和Web服务ASMX文件同名,扩展名为参数/l指定的语言的扩展名;参数/protocol指定调用Web服务方法使用的协议,可以是HTTP-GET、HTTP-POST和SOAP协议;http://后边是Web服务ASMX文件的URL。WSDL.exe是一个绿色软件,可以拷贝到任意位置运行。WSDL运行的结果是生成一个Web服务客户端程序代理类的源程序,可以用记事本程序查看其源代码。有了源程序,还要编译源程序生成dll文件,格式如下:csc /t:library Service1.cs,使用方法可参见1.2节。最终生成一个Service1.dll文件,使用它可以生成客户端代理类。

    VS.Net也是使用WSDL.EXE为客户端程序增加代理程序。如果不使用VS.Net,只能直接使用WSDL.EXE生成客户端程序增加代理程序。

    例子e13_3_3:控制台应用程序调用Web服务方法,源程序如下:

    using System;

    using System.Web.Services;

    class UseService1

    {

    public static void Main()

    { string s;

    int x,y,z;

    Console.WriteLine("输入第1个加数a:");

    s=Console.ReadLine();

    x=Convert.ToInt(s);

    Console.WriteLine("输入第2个加数b:");

    s=Console.ReadLine();

    y=Convert.ToInt(s);

    Service1 ws=new Service1();//代理类对象

    z=ws.MyWebMethod(x,y);//调用Web服务方法

    Console.WriteLine("sum:={0}",z);

    }

    }

    以文件名UseService1.cs存盘,和Service1.dll在同一文件夹,用下面的命令编译这段代码:csc /r:Service1.dll UseService1.cs,生成UseService1.exe,运行生成的UseService1.exe程序,输入两个加数后,在CRT上输出运算结果。

    如用记事本生成调用Web服务的ASP.Net网页文件,要把生成的Service1.dll文件存到这个网页文件所在目录的子目录bin下,这个代理类就可以被这个ASP.Net网页使用了。请读者完成这个例子。

    13.3.4   同步和异步Web服务

    以上所介绍的客户端调用Web服务方法,要一直等待Web服务方法运行结束后,返回结果,才能执行其它程序,这种调用方法叫做同步模式Web服务调用。如果Web服务方法访问远程数据库、执行网络输入/输出和读写大文件,将花费大量时间执行这些操作,采用同步Web服务模式将会降低程序的运行效率,此时可使用Web服务异步调用模式。所谓异步模式Web服务调用是程序执行Web服务调用后,并不等待返回的结果,而是执行其它程序,一直到希望取回Web服务方法返回数据时,才取回数据分析。13.3.3节中生成的Service1.cs中有两个方法BeginMyWebMethod和EndMyWebMethod就是为了实现Web服务异步调用模式的,有兴趣的读者可参考有关文献深入学习。

    13.3.5       不同系统Web服务的互操作

    前面仅仅介绍了.Net系统Web服务的建立及使用,那么不同系统Web服务是否可以实现互操作呢?换句话讲,一个系统的客户端程序是否可以使用另一个系统的Web服务呢?答案应该是肯定的,但实现起来却很麻烦。这主要是各个系统实现的WSDL、Soap协议等细节还不完全相同,很多系统并不能自动生成代理程序,很多工作还必须由程序员自己实现。程序员首先要做的是把程序的调用及其参数转化为SOAP协议,用Http-Post协议发送给Web服务程序。其次调用Web服务方法后,Web服务方法返回以XML表示的结果,还需要对XML文档进行解析,得到指定类型的数据。很多公司提供了SOAP工具包来创建和分析SOAP消息。这些工具包通常将函数调用从某种语言转换为SOAP 消息。例如,Microsoft SOAP Toolkit 2.0 将 COM 函数调用转换为 SOAP,而 Apache Toolkit 将 JAVA 函数调用转换为 SOAP。函数调用的类型和支持的参数的数据类型随每个SOAP实现方案的不同而不同,因此适用于一个工具包的函数可能并不适用于另一个工具包。这并不是 SOAP 的限制,而是所使用的特定实现方案的限制。本课程就不介绍这方面的知识了,有兴趣的读者可参考有关文献,继续深入学习。

    13.4   发布和发现Web服务

    在Web服务中应包括三个角色:Web服务提供者、Web服务调用者、Web服务注册查询中心。他们之间的关系如下图。

    完成Web服务开发,Web服务提供者为了让Web服务调用者找到自己的Web服务,必须到Web服务注册查询中心注册自己的Web服务。Web服务调用者只有到Web服务注册查询中心查询才能找到需要的Web服务。当然,并不是所有的Web服务应用都包括以上3部分,例如,上节所介绍的气象台、应用程序集成、工作流程解决方案等并不需要Web服务注册,而代码复用、新的销售方式则需要Web服务注册。作为程序员,学习的重点应在学习创建Web服务服务器端和客户端程序。本节简单介绍Web服务发布和查找问题。

     

                   图13.4

    13.4.1     Web服务发布

    和使用因特网上任何其他的资源一样,如果没有查找的方法,是不可能够找到一个特定的Web服务的。为了实现Web服务的注册和查找,微软、IBM和Ariba合作建立了一个带有UDDI(Universal Description 、Discovery and Integration,统一描述发现和集成规范)的网站:http://www.uddi.org/,可以让Web服务供应者在其上发布他们提供的Web服务的信息,而Web服务使用者可以在此网站查询所需的Web服务。

    UDDI是一个独立于平台的、开放式的架构,可描述Web服务、发现服务,并提供一个可操作的注册表,允许Web服务提供者注册。现在已有几百家公司支持UDDI协议。

    13.4.2       Web服务发现

    程序设计者可以通过以下步骤发现所需的Web服务:

    (1)    首先,访问Web服务目录网址,例如http://www.uddi.org/,查找所需Web服务,将返回一个所需Web服务URL。

    (2)    按照返回URL,用如下格式访问这个网址:http:// 返回Web服务URL?discro。disco文件是包含连接到其它描述XML Web服务资源的XML文件。.Net的Web服务自动创建这个XML Web服务disco文件,读者可用如下语句访问web服务例子e13_2_2的disco文件:http://localhost/e13_2_2/Service1.asmx? disco。

    (3)    使用Web服务的WSDL建立一个Web服务客户端程序代理类。

    (4)    建立Web服务客户端程序,使用代理类访问Web服务方法。

    13.5  使用Web服务的例子

    本节介绍2个使用Web服务的实际例子,进一步介绍Web服务的使用。

    13.5.1       .Net系统Web服务支持的数据类型

    并不是所有数据类型都可以作为Web服务方法参数和返回值的数据类型,这是因为一种数据类型在不同的系统中,定义的格式可能不同,例如常见的int类型,在不同系统中位数可能不一致。为了解决这个问题,XML Schema Definition草案规定了Web服务应支持的数据类型及定义。主要包括基本类型:String、Char、Boolen、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal等,以及class、struct、DataSet、XmlNode、String[]、DataSet[]、XmlNode[]等等。.Net系统的Web服务支持以上数据类型。

    13.5.2       使用Web服务返回数据库表

    使用Web服务,经常要查询数据库中指定数据,一般这些数据为一个数据库表。由于Web服务不支持DataTable类对象作为参数或返回值数据类型,因此必须把DataTable类对象放到DataSet类对象中,作为返回值数据类型,下边是实现的例子。

    例子e13_5_2A:本例创建Web服务器端的程序,其Web服务方法返回第8章创建的数据库StudentI中的Student表。使用VS.Net建立这个Web服务的具体步骤如下:

    (1)创建asp.Net web服务项目,项目名为e13_5_2。

    (2)按照8.12节的例子e8_12中的第(4)步到第(8)步创建OleDbConnection对象、OleDbDataAdapter对象和数据集DataSet对象。

    (3)在构造函数Service1中增加语句如下:

    dataSet11.Clear();

    oleDbDataAdapter1.Fill(dataSet11);

    (4)  为了在访问时不出现建议提示,在Service1类定义的前边加入如下语句:[WebService(Namespace="http://202.206.96.204/")]。

    (5)  增加一个Web服务方法MyWebMethod如下:

    [WebMethod]

    public DataSet MyWebMethod ()

    {     return dataSet11;

    }

    例子e13_5_2B本例创建Web服务客户端的程序,单击按钮,调用例子e13_5_2中Web服务方法,将返回的使用数据库StudentI中的Student表在DataGrid控件中显示。用VS.Net建立Windows应用程序的具体步骤如下:

    (1)  打开VS.Net,新建Windows应用程序项目,项目命为e13_5_2B,在窗体中增加一个按钮,标题为"调用Web服务",单击按钮将调用例子e13_5_2中的Web服务方法。增加一个DataGrid控件,用来显示调用Web服务方法后返回的数据库StudentI中的Student表。

    (2)  按照例子e13_3_2的方法添加Web引用。

    (3)  为按钮增加事件函数如下:

    private void button1_Click(object sender, System.EventArgs e)

    {   localhost.Service1 ws=new localhost.Service1();

    DataSet ds=ws.MyWebMethod();

    dataGrid1.DataSource=ds.Tables[0].DefaultView;

    }

    (4)  编译运行,单击标题为"调用Web服务"的按钮,将在DataGrid控件中显示数据库StudentI中的Student表。

    13.5.3       用Web服务传送图形文件

    本节介绍用Web服务传送图形文件的方法。基本思想是在服务器端把图形文件转换为一个字节数组,传递到客户端,再转换为图形文件,并显示,步骤如下:

    例子e13_5_3在服务器端的Web服务方法如下:

    [WebMethod]

    public byte[] GetImage()

    {   string s=Server.MapPath("p1.GIF");

        if(File.Exists(s))

        {   FileStream fs=File.OpenRead(s);

            int n;

            MemoryStream fst=new MemoryStream();

            while((n=fs.ReadByte())!=-1)

            {  fst.WriteByte(((byte)n));

            }

            fs.Close();

            return fst.ToArray();

        }

        else

        {   return new byte[0];

        }

    }

    子e13_5_3B:在客户端建立Windows应用程序,按照例子e13_3_2的方法添加Web引用。增加一个按钮,标题为"调用Web服务",增加一个PictureBox控件用来显示所传递的图形文件。按钮单击事件函数如下:

    private void button1_Click(object sender, System.EventArgs e)

    {   localhost.Service1 ws=new localhost.Service1();

        byte[] B1=ws.GetImage();

        MemoryStream fst=new MemoryStream(B1,0,B1.Length);

        Bitmap image=new Bitmap(fst);

        pictureBox1.Image=image;

    }

    习题

    (1)    请说出其它使用Web服务的例子。

    (2)    修改例子e13_3_2为ASP.Net应用程序,此时,网页提供了一个界面,允许访问此网页的用户输入两个加数,单击计算按钮,调用另一台计算机中的Web服务方法计算两个加数的和。这时应在网页所在的计算机中生成代理类。(提示:要在两台计算机中完成)

    (3)    修改例子e13_3_2,客户端程序也是一个Web服务,调用例子e13_2_2中的求和Web服务方法,请问如何实现。(提示:要在两台计算机中完成)

    (4)    在Web服务中,也可以使用Application和Session对象,和ASP.Net中使用方法相同。修改例子e15_5_2,将DataSet对象放到Application中,供所有的Web服务使用。

    (5)    修改例子e15_5_2,客户端程序提供一个Sql语句,Web服务方法根据此Sql语句查询指定数据,返回客户端。

    (6)    完成例子e13_5_3。(提示:使用文件必须引入的命名空间using System.IO;)

    (7)    例子e13_5_3读文件可能出错,如何处理。

    转载于:https://www.cnblogs.com/Aha-Best/p/10931787.html

    展开全文
  • Java进阶(三十一) Web服务调用

    万次阅读 2016-06-24 11:44:51
    Java进阶(三十一) Web服务调用前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19 查看代码...
  • web 服务器有哪些

    万次阅读 多人点赞 2018-08-27 16:53:49
    什么是web服务器 "网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。 Web Service架构和云 如果一个软件的主要部分采用了"网络服务",即它把存储或计算环节"外包"...
  • web服务器和应用服务器的区别与分析

    万次阅读 多人点赞 2018-07-10 15:28:21
    Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满...
  • Web服务器有哪些(转)

    万次阅读 2019-04-30 16:15:34
    文章目录1、什么是web服务器1.1 Web Service架构和云1.2 Web Service的优势1.3 Web service的发展趋势1.3 本地服务的缺陷2、web服务器有哪些2.1 Apache2.2 IIS2.3 Nginx2.4 Tomcat2.5 Lighttpd2.6 Zeus 1、什么是web...
  • 使用Nginx提供服务的产品,经过安全扫描工具扫描后报出两个安全漏洞 1.1、安全漏洞:Web服务器HTTP头信息公开 风险级别:中风险 漏洞个数:4 漏洞详情: 端口 协议 服务 443 TCP WWW 80 TCP WWW 8000 TCP...
  • 搭建web服务器

    万次阅读 2018-06-18 07:38:54
    在本地pc上搭建web服务器,利用路由器,将本地pc和手机通过无线局域网组成局域网,本地ip为192.168.0.106,手机ip为192.168.101,win+r----&gt;在cmd命令行窗口输入:ping 192.168.0.101.检查电脑和手机是否能...
  • web服务器排名

    千次阅读 2018-05-29 18:21:07
    (1)ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy ...
  • 一、什么是WEB服务器  Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应...
  • 如何使用nodejs创建Web服务器

    万次阅读 热门讨论 2017-06-04 17:03:33
    Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 大多数 web 服务器都...
  • 转载自...1、什么是服务器? 2、Web服务器,Web容器和应用服务器的区别?3、Apache和Tomcat的区别?4、都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache的区别? 1、什么是服务器 ...
  • 常用的WEB服务器简介

    万次阅读 2018-06-22 10:55:57
    Unix和Linux平台下常用的服务器有Apache、Nginx、Lighttpd、Tomcat、IBM WebSphere等,其中应用最广泛的是Apache。而Window NT/2000/2003平台下最常用的服务器是微软公司的... 1、Apache是世界上应用最多的WEB服务...
  • Windows下部署Flask的Web服务

    万次阅读 热门讨论 2018-06-22 12:46:13
    Flask提供了轻量级的Web服务,方便我们开发和调试,但是实际部署的时候,却不能直接用Flask发布应用,还需要Web服务和WSGI(web服务网关接口)。Flask更多是作为Web Framework,而不是Web Server。 我们用一个图...
  • Web服务器是指驻留在Internet上的计算机程序,它的基本功能是提供Web信息浏览服务。因为Web服务器主要支持的协议就是HTTP协议,所以通常情况下WEB服务器和HTTP服务器说的是同一回事。应用服务器是指通过各种协议把商...
  • Web服务器工作原理详解(基础篇)

    万次阅读 多人点赞 2018-08-14 17:12:00
    Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。 Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议...
  • 区分Web服务器、HTTP服务器、应用程序服务器

    万次阅读 多人点赞 2018-04-04 16:58:08
    进程听到和看到web服务器、HTTP服务器、应用程序服务器,但一直不知道它们有什么区别,迷惑了好久,今天查看的很多博客,终于算是梳理通了,下面我就来总结一下它们的区别,顺别了解一些服务器。 首先我们要知道web...
  • 我们在使用 web 服务器 Tomcat 进行网页部署时,在不配置使用其他 IDE 时(如Eclipse),就需要自己来配置服务器的服务目录,而服务目录的配置又可以细分为若干种,本文就如何配置列举了如下几种方式。希望初学动态...
  • web服务器和web框架的作用及其关系

    千次阅读 多人点赞 2018-10-15 21:24:27
    web服务器和web框架的作用及其关系 1.web服务器作用: 1)解析请求报文,调用框架程序处理请求。 2)组织响应报文,返回内容给客户端。 2.web框架程序的作用: 1)路由分发(根据url找到对应的处理函数) 。 2)在处理...
  • OGC 的 Web 服务规范

    千次阅读 2018-11-21 19:03:49
    简要介绍 OGC 规定的 Web 服务规范,这些规范是构建 Web GIS 应用的基础。
  • 应用服务器和web服务器的区别

    千次阅读 2018-07-19 10:48:46
    Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主 要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有...
  • WEB服务器和中间件

    万次阅读 2018-06-07 22:08:10
    一、WEB服务器 WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 采用的是浏览器/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 ...
  • Web容器Web服务器及常见的Web容器有哪些?  一、引言  首先来理解一下简单的一个请求发送到响应的过程。 首先,客户端,通常是浏览器或者一些应用发送请求到你的服务器地址,比如访问你的Url或者其他的东西。而...
  • web服务器和app服务器

    千次阅读 2015-10-18 10:31:03
    简单来说,web服务器提供页面给浏览器,而app服务器提供客户端可以调用的接口。 web服务器处理HTTP协议。当收到一个HTTP请求之后,web服务器会返回一个HTTP响应,比如一个HTML页面。为了处理请求,它可能响应一个...
  • Java中常用WEB服务器和应用服务器

    万次阅读 2018-06-29 15:20:31
    一、web服务器和应用服务器的区别 Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是...
  • WEB安全基础-WEB服务器相关知识

    千次阅读 2018-01-04 16:50:55
    操作系统+WEB服务+解释执行环境+数据库服务=WEB服务端 Windows server: IIS+ASP(.NET)+SQL Server = .NET Linux: Apache+PHP+MySQL = LAMP UNIX/Windows: Tomcat+JSP+Oracle = J2EE localhost=本地
  • 树莓派搭建web服务器

    千次阅读 2018-07-19 13:42:21
    树莓派搭建Web服务器  安装nginx+sqlite+php5打造轻量级W服务器  简单介绍一下 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。...
  • Vertx搭建Web服务器

    千次阅读 2017-06-05 11:10:20
    Vertx搭建Web服务器

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 357,374
精华内容 142,949
关键字:

web服务