在.NET Framework 4.0创建服务是中没有像3.5那样的选择新建-网站-ASP.NET Web服务模块,但在4.0中可以选择 新建-网站-ASP.NET空网站-选中项目右键添加新项-

选择Web服务,接着找到Web服务,创建服务即可

所有的名称都没更改,如果WebService.asmx的名称改了,如改成MyService.asmx,这代理类的名称也会自动更改,代理类名称就会改为MyServiceSoap

在其他程序项目引用该服务是会创建代理类,代替服务类,建立代理类对象就等于建立服务类,并可以调用其中方法

创建好后后可看到如下代码:

上图中的public class WebService{...}就是服务类,其中默认包含一个方法HelloWorld

服务创建好后就跟发布网站一样将其发布在IIS中,接着,再次打开VS2010开发工具,新建网站或Windows窗体应用程序,在界面上放入一个按钮和一个Lable,点击按钮时调用HelloWorld方法,将“Hello World”显示在Lable中,这里以Windows应用程序为例:

创建:(还没添加服务引用前的解决方案资源管理器样子)

添加自己创建的服务:右键

选择添加服务引用后出现如图所示:

地址栏里输入你的服务地址,打开你先前创建的服务项目,右键在浏览器中查看:

如图:(鼠标选中的为你的服务地址)

复制好后粘贴到添加服务引用的地址栏中,点击前往,会出现如下图所示:

命名空间可以改名也可以不改,这里我改为aa,代理类则会在命名空间aa中,点击确定后,资源管理器变成如下图所示:

可以双击app.config查看你的代理类的类名,方便我们建立代理类对象,调用服务HelloWorld方法

双击app.config,找到代理类名,如图:

一般的,我们在创建代理类实例时,aa.WebServiceSoap后面会存在Client这个单词,如果创建服务时将WebService.asmx改成MyService的话,这里name就为“MyServiceSoap”,(前面我没有更改,用的是默认的WebService.asmx)

接下来我们需要点击按钮然后在Lable 中显示“Hello World”,就是在按钮的单击事件中创建服务实例,调用HelloWorld()方法

创建服务实例时,如图所示:

选择aa.WebServiceSoapClient创建代理类对象

写好单击事件后代码如图所示,之后运行,ok

.net中关于Windows窗体程序和Web网站程序调用自己的服务的更多相关文章

  1. 如何:对 Windows 窗体控件进行线程安全调用

    http://msdn.microsoft.com/zh-cn/library/ms171728(VS.90).aspx http://msdn.microsoft.com/zh-cn/library ...

  2. Web应用程序与Web网站及部署在IIS中

    在Visual Studio可以创建 Web 应用程序项目或网站项目.通过选择 新建项目 或 打开项目 创建或打开一个 Web 应用程序项目在Visual Studio 文件 菜单. 通过选择 新建网 ...

  3. 张小龙的野心:用小程序重构web|小程序好处及可能的不足

    一:张小龙的野心:用小程序重构web 一 很多年以前,张小龙写了一款软件:Foxmail. 这款软件当年有数百万用户,这是一个相当庞大的量,因为彼时网民也只有千万当量级的规模. 我是一个非常忠实的用户 ...

  4. 2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序

    Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节".提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛 ...

  5. 在.NET中把项目从类库转为Web应用程序

    我们知道,在.NET中所有的项目文件以.csproj为扩展名.内容是xml格式. 类库项目文件.csproj: <Project DefaultTargets="Build" ...

  6. 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)

    如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...

  7. 如何 对 Windows 窗体控件进行线程安全调用

    //主线程 public delegate void UpdateMessage(string mes); public void UpdatePortMessage(string mes) { th ...

  8. web层直接调用 dubbo的服务,合适吗?

    目前很多互联网app项目,都是采用这样的一个基本项目结构:即由后端提供Restful的api接口,然后供前端例如IOS.Android或者H5端去调用,如图: 在这种结构下,后台的代码分层常规一般会有 ...

  9. 【转】Tomcat中部署java web应用程序

    http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载:今天给大家介绍怎样在Tomcat5.5.9中部署Java Web ...

随机推荐

  1. CTF---密码学入门第五题 传统知识+古典密码

    传统知识+古典密码分值:10 来源: 霜羽 难度:易 参与人数:2297人 Get Flag:735人 答题人数:938人 解题通过率:78% 小明某一天收到一封密信,信中写了几个不同的年份     ...

  2. bzoj:3994:vijos1949: [SDOI2015]约数个数和

    Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M.   O ...

  3. hdu_1286找新朋友(欧拉定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 找新朋友 Time Limit: 2000/1000 MS (Java/Others)    M ...

  4. c++只能编译无法运行或许缺少命令

    -mwindows -lcomctl32 -lwinmm -lws2_32 -lodbc32 -lmysql   -lwinspool1.工具-编译选项-编译器-在连接器命令行加入以下命令:-mwin ...

  5. [高并发]抢红包设计(使用redis)

    假设一个需求,在某个预告活动中准备了10w个红包,100w人在某个时间点去开抢,每人只能抢1次,如何保证性能和准确性,下面我给出我的一个设计方案,抛砖引玉 分析瓶颈 查询用户是否已参与过活动 获取一个 ...

  6. js函数声明的三种方式

    1.直接声明 function box(num1,num2){ return num1+num2;}alert(box(1,2)); 2.使用变量初始化 var box2 = function(num ...

  7. [国嵌攻略][108][Linux内核链表]

    链表简介 链表是一种常见的数据结构,它通过指针将一系列数据节点连接成一条数据链.相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入 ...

  8. HDU 1979 Red and Black

    题目: There is a rectangular room, covered with square tiles. Each tile is colored either red or black ...

  9. Core Animation 文档翻译(第三篇)

    Core Animation 文档翻译(第三篇) 设置Layer对象 当我们使用核心动画时,Layer对象是一切的核心.Layers 管理我们APP的可视化content,Layer也提供了conte ...

  10. 学习总结:libevent--简单入门

    libevent--简单入门 一.简介 libevent是一个c语言写的事件驱动库,轻量级,专注于网络,跨平台特性好,支持多种 I/O 多路复用.支持I/O,定时器和信号等事件,允许设置注册事件优先级 ...