webservice之简单创建和发布(一个加法运算)

来源:互联网 发布:淘宝宝贝链接地址提取 编辑:程序博客网 时间:2024/06/05 14:18

webservice之简单创建和发布(一个加法运算)

开发工具 visual studio 2010

WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。

WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度产品,最高到WSE3.0.后来就是WCF时代。

这些都是其他扩展的内容了,本文主要讲述如何创建并发布一个webservice。

打开visual studio 新建一个空的asp.net文本应用程序

visual studio 2010 不能直接创建一个webservice应用程序 必须在一个asp.net应用程序中创建相应的服务,直接创建只能创建一个wcf应用程序。

在项目中添加一个web服务

编辑代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace Testwebservice{    /// <summary>    /// mywebservice 的摘要说明    /// </summary>    [WebService(Namespace = "172.16.2.11")] //为自己以后webservice发布虚拟目录所在的域名 本例子使用本机Ip地址    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。    // [System.Web.Script.Services.ScriptService]//启动对脚本的支持    public class mywebservice : System.Web.Services.WebService    {        //系统自动生成的代码        //[WebMethod]        //public string HelloWorld()        //{        //    return "Hello World";        //}        //定义一个简单的求和方法        [WebMethod(Description = "求和的方法")]        public string Addition(double i, double j)        {            return "这2个数的和为=== "+(i + j).ToString();        }            }}

发布这个加法运算的webservice

配置web

发布

打开iis

计算机——管理——服务和应用程序——Internet信息服务管理器

添加一个网站

设置默认目录

添加默认文档

全名(打错了 呜呜··)

现在我们点击管理网站——浏览网站

程序报错.net framework服务版本无法识别,也就是说我们写的版本与我们发布时服务器的版本不一致

更改即可

现在浏览网站 就可以看见我们自己发布的加法服务了

接下来我们如何使用这个求和的服务呢?

新建一个空白的asp。netweb应用程序

然后添加服务引用

新建一个web窗口 编辑代码

页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="useadd.aspx.cs" Inherits="usemytest.useadd" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server" method="get">    <div>     <input type="text" name="n1"/>     <input type="text" name="n2"/>     <input type="submit" value="求和"/>    </div>    </form></body></html>

cs文件C#代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace usemytest{    public partial class useadd : System.Web.UI.Page    {        ServiceReference1.mywebserviceSoapClient addsoap = new ServiceReference1.mywebserviceSoapClient();        //实例化一个SoapClient服务对象        protected void Page_Load(object sender, EventArgs e)        {            if (IsPostBack)            {                int n1 = Convert.ToInt32(Request.QueryString["n1"]);//获取加数的值                int n2 = Convert.ToInt32(Request.QueryString["n2"]);                string result=addsoap.Addition(n1, n2);//调用webservice中发布的方法                Response.Write(result);//输出结果            }        }    }}

运行结果

在部署的时候如果报错:CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web

解决方法是对发布文件所在文件夹和系统文件夹“c:windows\temp” 目录访问权限 temp--> 属性-->安全-- > 添加everyone -->并赋予其权限为 读 和 写--> 确定

 

0 0
原创粉丝点击