今天因为项目需要使用服务引用,就按之前的经验添加上了,步骤如下: 
项目根目录——引用——右键——添加服务引用——高级——添加Web引用——输入接口的URL地址——回车(下方出现的就是接口的定义的方法)——修改Web引用名——添加引用。

按照上面的步骤就可以将引用添加到Web References文件夹下,这也是以往经验,但是具体使用时发现添加的是Web Reference并不能满足项目的需要,这里需要用的是Service Reference。在这之前也查过很多文章,大多数都说是两者没有什么大的区别,主要是Service Reference适用的.net版本更高,而且可以使用WCF。那么两者到底有什么区别呢?

一、Web Reference生成的代理可以被.net1.1或.net2.0的客户端调用;Service Reference生成的代理只能被.net3.0+的客户端调用。

二、Web Reference不能使用WCF(上面已经提到,原因是WCF需要.net3.0的支持);Service Reference则可以使用WCF(当然需要3.0+的客户端)。

三、Web Reference是由wsdl.exe生成客户端代理的,生成webservice代理类的方法,即从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来,代理类代码可以指定要访问的URL属性;Service Reference是由svcutil.exe生成客户端代理的,按照新的webservice客户访问机制WCF(不是直接从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来。)代理类代码没有URL属性可指定,而是在客户端的配置文件app.config中指定endpoint来访问指定的url。

那么如何添加Service Reference呢,步骤与文章开头类似,具体如下: 
项目根目录——引用——右键——添加服务引用——输入地址——转到(下方会出现服务与操作两个小窗口,服务是代理类名称,操作是代理类中定义的可调用方法)——修改命名空间——确定。

与添加Web Reference不同的是没有点击“高级”按钮,高级中添加的Web Reference是.net2.0版本的引用方式,是为了兼容性才保留下来。

msdn解释:若要调用 Web 服务的方法,应调用生成的 Web 服务代理类的对应方法。 生成的代理类执行对 Web 服务方法的 Web 请求。 
【注意】 
要使启用 AJAX 的 ASP.NET 应用程序从脚本调用 Web 服务,必须配置该应用程序注册所需的 ASP.NET HTTP 处理程序。 
您调用的 Web 服务必须是 .asmx 文件,并且必须使用 ScriptServiceAttribute 特性限定。 从脚本调用的各个方法必须使用 WebMethodAttribute 特性限定。 不带此特性的方法不在代理类中公开。

以上是服务引用的步骤及相关知识,下面看下如何在一个站点添加服务接口:

服务要建在web层,在web层或任选一个文件夹右键——添加——新建项——选择web服务(注意文件是以 .asmx为后缀)

下面是一个小例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
namespace DemoWeb.API
{/// <summary>/// WSVerify 的摘要说明/// </summary>[WebService(Namespace = "http://www.*****.com/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。// [System.Web.Script.Services.ScriptService]public class WSVerify : System.Web.Services.WebService{[WebMethod(EnableSession = true)]public DataTable GetLoginUserId(string username, string password){//检查用户是否登录DataTable dt = new BLL.company().GetUserByUsernamePwd(username, password);return dt;}}
}

其中WebMehodAttribute封闭类无法被继承,向使用 ASP.NET 创建的 XML Web services 中的某个方法添加此特性后,就可以从远程 Web 客户端调用该方法。否则无法调用。

Web Reference和Service Reference的区别相关推荐

  1. VS2008中Web Reference和Service Reference的区别

    很早就发现在vs2008中应用web service有两种方式,即Add Web Reference和Add Service Reference,但是一直不是很清楚这两者有什么区别.趁着今天有空实验一 ...

  2. 【转】Web Reference和Service Reference的区别

    今天因为项目需要使用服务引用,就按之前的经验添加上了,步骤如下: 项目根目录--引用--右键--添加服务引用--高级--添加Web引用--输入接口的URL地址--回车(下方出现的就是接口的定义的方法) ...

  3. spring-boot框架dubbo在controlle中r注解@Reference注入service,但是调用方法时候,service报null空指针异常

    spring-boot框架dubbo在controlle中r注解@Reference注入service,但是调用方法时候,service报null空指针异常 参考文章: (1)spring-boot框 ...

  4. @Component、@Repository、@Service、@Controller区别

    @Component.@Repository.@Service.@Controller区别 很长时间没写代码了,把以前学的那点框架知识忘光了,最近在写Java开源商城HapiShop,发现用@Comp ...

  5. oracle soap api,Web API与SOAP API的区别

    Web API与SOAP API的区别 总的来说,Web API比SOAP API有优势,多数情况下SOAP API的优势仅在消息结构的描述上.因此在三方集成时,当对方的集成工具仅支持根据WSDL来构 ...

  6. H5开发的web APP和原生APP的区别

    H5开发的web APP和原生APP的区别有以下几个方面:一.开发方面 原生App ⊙ 每一种移动操作系统都需要独立的开发项目⊙ 每种平台都需要独立的开发语言.Java(Android), Objec ...

  7. Web前端与HTML5有什么区别,百分之八十的人分不清

    说到Web前端,很多人想到的就是HTML5,加上现在APP和小程序盛行,Web前端开发和HTML5开发都异常火热.外行人很容易将HTML5和Web前端划等号,那Web前端和HTML5是否一样?有些人已 ...

  8. Web前端和后端开发的区别和要求

    Web前端和后端开发的区别和要求 有时候自己会分不清,其实是因为前后端都了解,类似于全栈工程师,但又什么都不是很精通.那到底什么是前端.后端呢,我整理了一些企业要求级别的前端/后端基础,开发框架等. ...

  9. WCF学习笔记(一):WCF Service Application和WCF Service Library的区别

    近来在学习WCF,遇到了不少问题,有的让我焦头烂额,不过解决问题的过程就是学习的过程,收获也不少. 昨天有个问题开始困扰我--WCF Service Application和WCF Service L ...

最新文章

  1. BTC.com率先发起使用开放联盟网关协议OFGP,联合iBitcome钱包携手送糖果
  2. java spring 校验框架_Springboot 使用校验框架validation校验
  3. 测试基础理论知识(二)
  4. 读博文学Android
  5. 操作系统基础:计算机作业管理知识笔记
  6. 心疼还在用Facebook的你一秒,Snapchat才是未来
  7. (转)调用System.gc没有立即执行的解决方法
  8. django 外键_Django 文档解读 - 模型层(1)
  9. SqlServer 的一个坑
  10. 如何用python下载图片_Python之如何优雅的下载一堆小哥哥图片
  11. spring boot引入JDK的jar,Jenkins自动化部署出错
  12. linux 执行 ktr脚本,kettle在linux下面用于shell脚本执行:转换或者作业
  13. 大学计算机课要怎么学,大学计算机课学结
  14. [白话解析] 通俗解析集成学习之GBDT
  15. iOS中UIColor,CGColor,CIColor详解
  16. 数睿数据2022新年致辞:小荷才露尖尖角,早有蜻蜓立上头
  17. 鸿蒙系统会应用在平板电脑,华为将发布搭载鸿蒙系统的平板电脑-芯查查
  18. 2.11 循环赛日程表
  19. 利用jpeglib压缩图像为jpg格式
  20. 关于BeanUtils.populate()方法使用时的报错解决

热门文章

  1. 使用handler倒计时
  2. 细数改善WPF应用程序性能的10大方法
  3. IIS7.0站点/虚拟目录中访问共享
  4. 学习 SQL 语句 - Select(4): 排序
  5. [Leetcode][第841题][JAVA][钥匙和房间][DFS][BFS]
  6. [Leetcode][第336题][JAVA][回文对][暴力][HashSet][字典树]
  7. 九歌计算机在线作诗硬件原理,“九歌”作诗是如何炼成的?
  8. win10计算机启动一分钟重启,Win10开机提示电脑将在一分钟后自动重启怎么办?...
  9. 如何去掉文章里的非关键词c++_B2B/B2C网站:文章标题如何写才能促进搜索排名...
  10. php8vsgo,服务端 I/O 性能:Node、PHP、Java、Go 的对比