开发,配置,调用-三步走构建简单的asp.net webservice(C#)-适合初学者阅读

简介: http://www.cnblogs.com/farrah/archive/2009/04/03/1429099.html   前两天,工作中遇到需要开发一个简单的webservice 网上搜索了不少文章,可是讲的很全面的还真是不多。

 

前两天,工作中遇到需要开发一个简单的webservice

网上搜索了不少文章,可是讲的很全面的还真是不多。特别是远程调用的例子,好难找。

所以自己搞定了之后,决定写一篇博客,从开发,配置到远程调用,一步步写个例子,供参考。

 

1,开发。

 

打开Visual studio.net 2008, 新建项目,选择ASP.NET WebService,给它起名WebServiceSample

系统自动生成一个helloworld

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

前面的标示“[WebMethod]”即表示这个方法可以远程调用。

只有public 的函数可以标示为“[WebMethod]”.

下面我们自己写一个简单的加法函数:

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
        [WebMethod]
        
public int MyAdd(int i, int j)
        {
            
return i + j;
        }

现在按“调试”按钮,出现一个对话框,直接按enter,出现一张网页,上方有两个链接,分别是HelloWorld和MyAdd

点选MyAdd进入,可以看到一个调试器,在其中输入i和j的参数,就可以调试MyAdd这个函数啦。

要留意的是,这边调试成功的话,在IIS中调试还是有可能会因为各种原因失败,因为本机调试和远程调试,许多方面是不同的,比如对本地文件的访问权限等。

远程调试的时候,WebService和一般的ASP.Net网站一样,用户只能访问wwwroot下面的文件哦。

这张页面下方,有远程调用本WebService的三种方法和各自的返回语句。

这三种方法调用的时候只是将发送和接受的内容加以改变而已。微软推荐的方法是上面两种。 

至此,一个最简单的WebService开发完成

 

2,配置

最最简单的配置方法:

把开发目录下的Web.Config,Service1.asmx,bin目录(只需要copy下面的WebServiceSample.dll)copy到C:\INetPub\WWWRoot\文件夹下。

如果本机的IIS服务没有安装或者启用的话,在控制面板里安装或者启用IIS服务。

如果在浏览器中输入http://localhost/service1.asmx会出现刚才调试的时候出现的页面的话,就说明配置成功啦。

 

3,远程调用

本机调用当然不算远程啦。但是我这边远程调用是为了区别直接调用dll说的,使用http方式的调用。其实使用http方式调用,不管是在本机上访问localhost还是在别的机器上访问本机的ip地址,都是一样的。

在调试页面,有三种调用方法的示例,下面我门以第三种方法为例子展示一下调用代码。

 

发送:
POST 
/ Service1.asmx / MyAdd HTTP / 1.1
Host: localhost
Content
- Type: application / x - www - form - urlencoded
Content
- Length: length

i
= string & j = string
接收:
HTTP
/ 1.1   200  OK
Content
- Type: text / xml; charset = utf - 8
Content
- Length: length

<? xml version = " 1.0 "  encoding = " utf-8 " ?>
< int  xmlns = " http://tempuri.org/ " > int </ int >

 

代码如下:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
        public static int CallMyAdd(int i, int j)
        {
            
try
            {
                String uri 
= "http://localhost/Service1.asmx/MyAdd";
                String content 
= "i=" + i.ToString() + "&j=" + j.ToString(); 
                HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(uri);
                request.ContentType 
= "application/x-www-form-urlencoded";
                
byte[] contentbyte = Encoding.UTF8.GetBytes(content);
                request.ContentLength 
= contentbyte.Length;
                request.Method 
= "POST";
                Stream contentStream 
= request.GetRequestStream();
                contentStream.Write(contentbyte, 
0, contentbyte.Length);
                request.ProtocolVersion 
= HttpVersion.Version11;
                HttpWebResponse response 
= (HttpWebResponse)request.GetResponse();
                
string retString = response.StatusDescription;
                
if(retString != "OK")
                {
                    
throw new Exception(retString);
                }
                Stream responseStream 
= response.GetResponseStream();
                StreamReader sr 
= new StreamReader(responseStream);
                retString 
= sr.ReadToEnd();
                XmlDataDocument xdd 
= new XmlDataDocument();
                xdd.LoadXml(retString);                
                
int result = int.Parse(xdd.ChildNodes[2].InnerText);
                
return result;
            }
            
catch(Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            
        }
 
 

要用另外两种方法调用的话,要自己生成XML文本,还有要修改Content-Type的值。

  wsdl 文件的生成 http://localhost:3310/WebSite1/Service.asmx?wsdl 

 

 

为了将WSDL file转化为源代码文件,我们将利用一个称为wsdl.exe控制台应用程序来产生代码。此工具将解析WSDL文件和其他一些附加文件来产生单一的源代码文件,源代码文件中包含执行Web service所需的所有类、方法、类型。Wsdl.exe将随着Visual Studio .NET 2003 (和.NET SDK)一起被安装。运用此工具,你首先需要打开Visual Studio .NET 2003命令提示控制台,默认情况下,此项位于开始菜单>>程序>> Microsoft Visual Studio .NET 2003的Visual Studio .NET工具。一旦打开,你便可以在以前保存的WSDL文件中操纵命令提示。

执行下列命令可以使得wsdl.exe产生客户端代理类。

wsdl /out:temp.cs http://localhost/VvopAmp/VvopAmpSrv.php?wsdl

客户端代理类保存在 temp.cs 文件中。

 

 

相关文章
|
3月前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
475 82
|
28天前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
|
5月前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
188 18
|
5月前
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
66 12
|
5月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
146 12
|
5月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
|
5月前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
5月前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
5月前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
194 5
|
5月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
206 13
下一篇
oss创建bucket