标签:web service web服务
开发工具 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 -->并赋予其权限为 读 和 写--> 确定
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:web service web服务
原文地址:http://blog.csdn.net/l1158513573/article/details/47746405