【转】WebService 的创建,部署和使用

WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成.

第一次选择WebService,是为了替代数据库远程连接.我们都知道当SQL允许远程时,则要打开某一端口.但这一点在我们已经部署好的服务器上,却是不被允许的,于是就选择WebService来代替了.当然现在我们也可以选择WCF来完成.不过这不是我们今天的主题.

WebService返回的数据为XML,这是我们都很熟悉的一种数据方式,大大方便了我们的工作当然,WebService给我们带来的好处远不止这些.我不想讲得更多.相信当你能够熟练运用WebService后,你会发现这是一把锋利的宝刃.

对于初次接触WebServcie的人来说,长篇理论,不如一个实例来得更实际些,我们更看重的是到底如何能够创建一个WebService并且将其部署,和使用.

下面我将逐步的完成一个加减乘除功能的WebServic.

开发环境:VS2012

IIS环境:WINSERVER2008R2 IIS7.5

第一步:打开VS2012,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4

新建好项目后,在项目中添加一个WebService项

打开这个文件,我们可以看到,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;  

namespace CalculateService
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>  

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
    // [System.Web.Script.Services.ScriptService]
    public class CalCulService : System.Web.Services.WebService
    {  

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}  

将HellowWorld这段代码删除,修改后如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;  

namespace CalculateService
{
    /// <summary>
    /// CalCulService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://login.wxjy.info")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
    // [System.Web.Script.Services.ScriptService]
    public class CalCulService : System.Web.Services.WebService
    {
        [WebMethod]
        public int Sum(int a, int b)
        {
            return a + b;
        }  

        [WebMethod]
        public int Sub(int a, int b)
        {
            return a - b;
        }  

        [WebMethod]
        public double Mult(double a, double b)
        {
            return a * b;
        }  

        [WebMethod]
        public double Div(double a, double b)
        {
            return a / b;
        }
    }
}  

此时,我们已经完成这个WebService的代码部分.接下来我们要将这个WebService打包发布

在项目上点击右键,点击菜单中的发布

此时出现如下页面

点击下拉菜单选择新建配置文件

完成以上步骤后,我们可以在设置文件生成的文件夹内看到生成的以下文件

现在我们要将生成的文件拷贝到已经部署好的IIS服务器上:在服务器上新建文件夹,将文件拷贝至文件夹内,并且为文件夹设置匿名权限.

现在我们在IIS中添加网站

需要注意的是:我们的这个WebService是基于.NET 4开发的.如果你的IIS默认使用的是.NET 2.0,那么发布后将会出现异常,而无法访问.

查看一下应用程序池的右边的应用程序池默认设置

提供两种解决方案:第一种,在上面的表格中,将应用程序池默认改为4.0即可.当然这是指你的IIS中没有需要2.0的应用程序和网站.

如果你的IIS中还有其它的需要.NET 2.0的应用程序,这时候你可以选择第二个办法

首先添加一个应用程序池

然后添加网站,将网站的应用程序池改为新建的应用程序池

当然,我们也可以将这个项目的.NET版本改为3.5,然后重新打包发布.那么就不需要添加对4.0的支持了.

添加完毕,启动网站,此时可以关闭与服务器的连接了.

在本地的浏览器中输入地址

http://xxx.xxx.com/calculservice.asmx

此时我们可以看到以下的界面

此时我们已经完成了这个WebService的创建和部署.接下来,我们要在本地使用它

打开VS2012,新建项目,项目名为TestCalCul

在项目中添加新建项

在项目中引用项上点击右键,选择添加服务引用,显示界面如下:

点击左下角的高级,出现界面如下

点击添加Web引用,出现界面如下

在URL中输入我们发布的WebService的URL地址,系统会自动搜索到服务.并且为Web引用设置一个引用名.此引用名将是我们在项目中引用这个服务的命名空间

点击添加引用,引用完成.

接下来,我们在WebForm1的cs文件中写如下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;  

//不要忘记为WebService添加using引用
using TestCalCul.MyWebService;  

namespace TestCalCul
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            CalCulService cal = new CalCulService();
            double a = 29755;
            double b = 112.58;
            Response.Write(cal.Mult(a, b).ToString());
        }
    }
}  

接下来,在浏览器中运行该项目.可以看到如下结果

此时我们已经完成了这个WebService的使用过程

其实,这个实例在开发中,没有任何意义.

但是通过这个实例,我们可以看出WebService的复用性,简单性是非常好的.

在VS的环境下,我们可以轻易完成一个WebService的开发过程.

而WebService返回给我们的XML数据方式,也可以充分的和JavaScript等任何一种可以处理XML的语言相结合来

完成我们的需求.

在这里要注意,当WebService连接数据库时,我们要适当的给WebService进行加密.

加密的方式很多,你可以通过在IIS服务器上禁止匿名访问来实现,也可以给WebService的验证增加验证内容,最

简单的就是加上用户名和密码.

还要注意,不要用有含义的方法名称,比如Login或者PayOrder等,回传数据不要使用bool值,尽量使用字符串来替

代,最好在字符串中加上干扰码等.

原文地址:http://blog.csdn.net/yexuanbaby/article/details/9029605/

时间: 2024-10-10 22:30:54

【转】WebService 的创建,部署和使用的相关文章

WebService 的创建,部署和使用

WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当SQL允许远程时,则要打开某一端口.但这一点在我们已经部署好的服务器上,却是不被允许的,于是就选择WebService来代替了.当然现在我们也可以选择WCF来完成.不过这不是我们今天的主题. WebService返回的数据为XML,这是我们都很熟悉的一种数据方式,大大方便了我们的工作当然,WebSer

WebService的创建和部署以及通过反射动态调用WebService

一.在ASP.NET中创建WebService 首先我们先创建一个ASP.NET Web应用程序,此处我们以VS2017为例 点击新创建的项目,右键添加新建项,选择Web服务,输入名称点击添加 这样我们的基础的WebService就创建好了 接下来我们填加一个webservice的测试方法,并且打上特性标签WebMethod,只有打上特性标签WebMethod并且访问修饰符设置为public后外部才能调用到该方法 using System; using System.Collections.Ge

WSDL WebService的创建和使用实例

一. WSDL WebService的创建: 1.创建[Web Service Project]: WebServices Framework要选JAX-WS: 2.写一个简单的测试用例: package com.webservice; public class WebService{ public String printData(String printerName){ String strRet = "Welcome to use WebService, " + printerN

WebService在Windows7部署问题

一.在控制面板,程序与卸载中安装IIS组件. 二.IIS无法显示WebService的.asmx文件.解决办法: 1.如果你是先安装的vs后再安装的IIS的话先注册一下IIS: 命令行转到目录:C:\Windows\Microsoft.NET\Framework\v2.0.50727 下执行命令:使用VS的命令行,输入命令:aspnet_regiis -i,重新注册.net环境. 2.如果命令行运行提示出错,可尝试用管理员身份运行(win7). 更新完后,IIS配置的应用程序池的.NetFram

Windows Azure 免费初体验 - 创建部署网站

前几天在看到有个学Windows Azure课程,送Windows Azure的活动,课程地址:http://www.microsoftvirtualacademy.com/ 在活得体验资格后,就迫不及待的捣鼓了下.在这里就介绍一下如何将自己的网站部署到Windows Azure上. 首先介绍下本机环境: -- 安装了Visual Studio 2013(自带数据库设计工具;虽然安装了SQL Server 2008,但是还是无法连接 SQL Server 2014) -- 安装了Git 下面就将

WebService的创建和使用——文件名称生成器

简介 之前做过一个文件名称生成器,通过Webservice读取XML文件并将其通过Json传到客户端中的combobx,用户通过combobox选择要生成文件的名称模板,点击生成则会产生一个文件名称并保存到数据库中. 涉及到的编程内容     webservice,XML,Access,Winform Webservice的创建       (1)创建空Web应用程序     (2)添加Web服务(asmx) (3)在[WebMethod]下写要使用的方法    (4)通过浏览器查看是否创建好服

vs自动生成的WebService配置文件在部署到IIs6后,服务调用失败的解决方法

近日,在项目中需要引用java发布的WebService,添加服务引用后,调用一切正常. 配置如下: <system.serviceModel> <bindings> <basicHttpBinding> <binding name="SecurityServiceImplServiceSoapBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize=&qu

VS2012 webservice的创建并在iis上发布,发布完后解决“测试窗体只能用于来自本地计算机的请求.”问题视频教程

VS2012 webservice的创建并在iis上发布,发布完后解决"测试窗体只能用于来自本地计算机的请求."问题视频教程 http://yunpan.cn/cZckwQc7FyFN9 访问密请下载查看  http://download.csdn.net/detail/u014180504/8503089 

.Net 平台WebService的创建、部署和使用介绍

.NET平台内建了对Web Service的支持,包括Web Service的构建和使用.与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了..NET Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持.下来我们就使用 一个非常简单的示例来介绍Web Service的创建.部署和使用. 一.用Visual Studio创建一个最简单的Web Service 首先,打开VS,