C#最简单最完整的webservice实例

我做java,但最近接触crm所以必须研究一下C#中的webservice以备后用,其实就是个新手,哈哈,这个实例是我在参考了网上诸多不完整的例子的情况下,自己摸索完成的。期间遇到过一系列的棘手的问题,经过个人努力终于解决了。我把整个步骤都写完整了,以供以后像我这样的C#新手少走弯路,程序很简单,过程有点长,希望有耐心,对于入门还是有些帮助的。如果博客中没附上源码的【原因可能没法添加源码】,可以留言或邮箱我来发送给大家。

 

 

一、环境 

    我的开发环境是xpsp3,这个对于asp.net的要求是v2.0.50727

如果不是的话会报错,可以到本地的

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

运行即可。如果自己的已经安装过的就可以跳过,否则在webservic的调试中会报一下错:

名称以无效字符开头。处理资源 'http://localhost/ws/Service.asmx' 时出错。第 1 行,位置: 2

   其次,需要安装IIS,我测试的版本是iis5.1, 本来装了iis6 但是用不了,所以版本也很重用,本人在次耗费了部分心血。如果不清楚版本可以看看百科里的描述以作决定的参考:

http://baike.baidu.com/view/850.htm

 

二、程序

这个过程总共建立2个独立的项目:一个webservice 项目,一个调用。

   1 建立和部署webservice 项目:

   vs2008新建webservicesT  :注意是ASP.NET Web 服务应用程序

   C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

 之后系统会自动生成一个类似于helloworld的一个简单例子:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 打开之后,可以看到

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

至此最简单的webservice就建立好了。我们不需要做任何事情,就用他来测试。

 

 接着需要对整个工程“生成”和发布。

 生成只要右键点击项目选择“生成”即可。

发布也一样,如下截图。

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

  把发布的文件拷到iis工作路径中,并把这个文件夹“web共享”。

  在资源管理器中:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

web

共享:

C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

iis中查看,我建的文件名为sv:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 最后来查看一下是不是部署成功,可以在ie地址栏中输入相关的url:

 我涉及的url  http://localhost/sv/Service1.asmx

 成功的话可以看到下面的截图

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

然后点击“HelloWorld”链接:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

然后点击“HelloWorld”链接,就可以最终的页面显示的xml内容:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 这样表示整个

webservice的建立和部署是成功的。

 

 

  2 接下来建立对webservice的调用调试。

 我是建立了一个web应用项目来调用测试的。

 步骤跟建立webservice项目类似,

注意选择好类型如图: 

C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

其次,最重要的一步就是引用webservice ,

 项目右键选择“添加web引用”,可以看到下图:

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 填入之前建立的webservice 对应的url ,此处是 http://localhost/sv/Service1.asmx

  点击前往即可:

C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

  

  然后把往“Web引用名”中填入一个名字,我填的是kiss,这个名字比较重要,因为下面的步骤中要使用他,当然你可以任意,但请记住。

  然后在后台中写入调用的方法页面也加入触发事件:

 后台代码:

 1 using System;
 2 
 3 using System.Collections;
 4 
 5 using System.Configuration;
 6 
 7 using System.Data;
 8 
 9 using System.Linq;
10 
11 using System.Web;
12 
13 using System.Web.Security;
14 
15 using System.Web.UI;
16 
17 using System.Web.UI.HtmlControls;
18 
19 using System.Web.UI.WebControls;
20 
21 using System.Web.UI.WebControls.WebParts;
22 
23 using System.Xml.Linq; 
24 
25  
26 
27 namespace wbcall
28 
29 {
30 
31     public partial class _Default : System.Web.UI.Page
32 
33     {
34 
35         protected void Page_Load(object sender, EventArgs e)
36 
37         {   }
38 
39         public string GetString()
40 
41         {    kiss.Service1 n = new kiss.Service1();
42 
43              string ss = n.HelloWorld();
44 
45              return ss;
46 
47         }
48 
49     }
50 
51 }
View Code

 

前台代码:

 1  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="wbcall._Default" %>
 2 
 3  
 4 
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 6 
 7  
 8 
 9 <html xmlns="http://www.w3.org/1999/xhtml" >
10 
11 <head runat="server">
12 
13     <title>无标题页</title>
14 
15     <script language="javascript" type="text/javascript">
16 
17 function B()
18 
19 {
20 
21 var a="<%=GetString() %>";
22 
23 alert (a);
24 
25 }
26 
27 </script>
28 
29 </head>
30 
31 <body>
32 
33     <form id="form1" runat="server">
34 
35     <div>
36 
37          kkkk
38 
39          <br />
40 
41          <input id="Bnt1" type="Button" value="button" runat ="server" οnclick="B()" />
42 
43     </div>
44 
45     </form>
46 
47 </body>
48 
49 </html>
View Code

 

两个的截图分别如下:

 C最简单最完整的webservice实例 - fyinthesky - Dave RojasC最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 

然后把此项目“生成”、“发布”到iis上,这个过程跟 webservice 一样,不再多说。

假如已经完成,接下来可以做测试了。

很简单,在浏览器的地址栏中输入: http://localhost/sc/Default.aspx

可以看到

C最简单最完整的webservice实例 - fyinthesky - Dave Rojas 

 

 点击按钮“button

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 系统会有这么一个提示,提示的内容就是之前在

webservice中的写的,可以看一下两者是一致的,都输出"HelloWorld"。

 C最简单最完整的webservice实例 - fyinthesky - Dave Rojas

 整个过程就结束了。当然调用的形式有多种,这里我只用了这个最简单的,其余的大家可以一起研究。

 这个webservice的建立和调用测试我都是在本机上,如果有必要可以在分布式环境上来测试。 

转载于:https://www.cnblogs.com/linyanyao/p/5358889.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈

秋实大哥去打工 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59Description 天行健&#xff0c;君子以自强不息。地势坤&#xff0c;君子以厚德载物。天天过节的秋实大哥又要过节了&#xff0c;于是他要给心爱的妹子买礼物。但由…

oracle怎么通过sid确定表名,如何获取Oracle的SID列表

更好的方法是&#xff0c;如果您有权访问主机并且Oracle安装使用以下命令&#xff1a;lsnrctl status。这适用于Unix&#xff0c;Linux和Windows机器。 status命令将显示所有监听器(及其相关的SID)。C:\>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Pr…

51 Nod 1007 正整数分组【类01背包】

1007 正整数分组 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 10难度&#xff1a;2级算法题将一堆正整数分为2组&#xff0c;要求2组的和相差最小。例如&#xff1a;1 2 3 4 5&#xff0c;将1 2 4分为1组&#xff0c;3 5分为1组&#xff0c;两组和相差1…

YTU 2924: 文件操作--二进制文件读入

2924: 文件操作--二进制文件读入 时间限制: 1 Sec 内存限制: 128 MB提交: 58 解决: 20题目描述 现有100名学生的姓名(name)、学号(num)、英语(English)、数学(Math)、语文(Chinese)成绩存储在一个二进制文件student.dic中(姓名用char[20]&#xff0c;学号和各科成绩用int存储…

oracle 9.2.0.4,CentOS 4.7 安装Oracle 9.2.0.4的一些问题

#vi/etc/sysconfig/iptables&#xff0c;增加如下-A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport telnet -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport ssh -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport login -j ACCEPT-…

《机电传动控制》----学习笔记六

《机电传动控制》与其他学科的联系 1、《液压传动与气压传动》中提到的液压控制阀中的电液伺服阀与《机电传动控制》中的控制电动机里的伺服电机有着密切的联系&#xff0c;都要求我们对伺服系统有着很好的理解。 2、《电路理论》中电机作为独立的一章&#xff0c;讲到了用向量…

Oracle Imp and Exp (导入和导出) 数据 工具使用

Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。这两个工具位于Oracle_home/bin目录下。 导入数据exp 1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中 exp system/123456ATSTestDB filec:\export.dmp fully 其中ATSTestDB为数据库…

[Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION

根据 471716.1&#xff0c;11g 之后&#xff0c;下列动作如果遇到坏块&#xff0c;都会输出记录到 V$DATABASE_BLOCK_CORRUPTION。- Analyze table .. Validate structure- CTAS(Create table as Select)- Export另外&#xff0c;这些也会记录的&#xff1a;RMAN > Vali…

oracle使用loop将增加十天,使用loop循环操作DML语句

---loop循环&#xff1a;--创建测试表&#xff1a;suxingPROD>create table total3(2 t1 number(8),3 t2 number(8),4 cr date default sysdate);Table created.#测试表已经创建。--查看表中原来的数据&#xff1a;suxingPROD>select * from total3;T1 T2 CR-…

iOS富文本

iOS富文本 背景&#xff1a;前些天突然想做一个笔记本功能&#xff0c;一开始&#xff0c;觉得挺简单的呀&#xff0c;一个UITextView,网络缓存也不干了&#xff0c;直接本地NSUserDefault存储&#xff0c;然后完事了&#xff0c;美工&#xff0c;弄几张好看的图片&#xff0c;…

SQL编程题-----1

首先&#xff0c;题目给出这个数据库表格 要求写出SQL语句使之变成如下表格 解决方法&#xff1a; SELECT t1.Rq,t1.胜,t2.负 FROM //t1和t2是自己命的新表格的名字 (SELECT Rq,COUNT(*) AS 胜 //As 胜意思是输出结果时列名为”胜“FROM testtableWHERE Sh…

maven设置jdk版本

两种方式&#xff1a;一、可以修改 MAVEN 的 setting.xml 文件&#xff0c;统一修改。<profiles> <profile> <id>jdk-1.6</id> <activation> <activeByDefault>true</activeByDefault>…

获取系统时间出错oracle-,oracle 获取系统时间(转)

Oracle中如何获取系统当前时间select to_char(sysdate,yyyy-mm-dd hh24:mi:ss) from dual;ORACLE里获取一个时间的年、季、月、周、日的函数select to_char(sysdate, yyyy ) from dual; --年select to_char(sysdate, MM ) from dual; --月select to_char(sysdate, dd ) f…

PHP环境搭建

以Apache模块运行PHP环境搭建方法 下载Apache 注意&#xff1a;在http://www.apachelounge.com/ 下载Apache&#xff0c;因为该网站提供的Apache是通过更高版本的VC编译器编译的。由于接下来我下载的PHP版本是VC11的&#xff0c;所以下载的Apache版本也是基于VC11的。 download…

Java语言中的-----访问修饰符

day04 Java语言中的----访问修饰符一、访问修饰符概述&#xff1a;访问修饰符就是对变量或者是方法或者是类的一个修饰&#xff0c;通过修饰以后实现一些必要的权限&#xff0c;主要是说明类成员如何被使用的作用。二、访问修饰符1、访问修饰符有哪些&#xff1f;访问修饰符总共…

六角填数---第五届蓝桥杯

/** 如图【1.png】所看到的六角形中&#xff0c;填入1~12的数字。使得每条直线上的数字之和都同样。图中&#xff0c;已经替你填好了3个数字&#xff0c;请你计算星号位置所代表的数字是多少&#xff1f;请通过浏览器提交答案。不要填写多余的内容。*/ public class 六角填数 {…

linux命令编写,编写简单的linux命令

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;又到了周四分享环节&#xff0c;鉴于最近在看linux编程实践&#xff0c;所以就的讲一下如何编写一个简单的who命令。PPTManual PageManual Page 也就是大家常用的m…

如何在ASP.NET 5和XUnit.NET中进行LocalDB集成测试

今天继续昨天的话题——单元测试&#xff0c;不过是在ASP.NET 5中的单元测试。 在当前的Visual Studio 2015 CTP6中&#xff0c;MSTest是不支持对ASP.NET 5项目进行单元测试的。因而&#xff0c;要对ASP.NET 5进行单元测试&#xff08;或集成测试&#xff09;&#xff0c;就需要…

mysql数据库详解(续一)

第三节 配置MYSQL数据库配置mysql数据库通常通过命令行选项、配置文件、和环境变量来进行&#xff0c;并且优先顺序也是命令行最高&#xff0c;环境变量优先级最低。1、配置文件定位mysql的配置文件可以在以下四个位置&#xff1a;(按照查找顺序)1、/etc/my.cnf2、DATADIR/my.c…

ImageLoader设置圆形图片

//自定义MyApplication类&#xff0c;需要在列表清单中设置 <application android:name"com.ce.image.MyApplication"//将类的名称赋给这个application package com.ce.image;import com.nostra13.universalimageloader.core.DisplayImageOptions;import …