哪个网站可以做论文简述,网站服务体系,专业网络推广,厦门网站代理今天因为项目需要使用服务引用#xff0c;就按之前的经验添加上了#xff0c;步骤如下#xff1a; 项目根目录——引用——右键——添加服务引用——高级——添加Web引用——输入接口的URL地址——回车#xff08;下方出现的就是接口的定义的方法#xff09;——修改Web引…今天因为项目需要使用服务引用就按之前的经验添加上了步骤如下 项目根目录——引用——右键——添加服务引用——高级——添加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 客户端调用该方法。否则无法调用。