asp.net中WebService属性记录

[复制链接]
查看: 176|回复: 7
发表于 2018-4-3 09:06:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 webservice 属性

  [webservice(description="ddddd"),namespace="http://`````",Name="webservice的名称"]

  2 webmethod:web服务方法(包含以下6个属性)

  description:对webservice服务类中方法的注释

  enablesession:标识当前webservice是否启动session;默认为false;(如果false,则无法使用asp.net的session对象)↓使用session的代码;

  ///

  /// WebService1 的摘要说明

  ///

  [WebService(Namespace = "http://tempuri.org/")]

  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

  [System.ComponentModel.ToolboxItem(false)]

  // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。

  // [System.Web.Script.Services.ScriptService]

  public class WebService1 : System.Web.Services.WebService

  {

  [WebMethod(EnableSession = true, Description = "相加的操作")]

  public string HelloWorld(string logname)

  {

  if (logname == "admin")

  {

  Session["User"] = logname;

  }

  else

  {

  Session.Remove("User");

  }

  if (Session["User"] == null)

  { return "未登录"; }

  else

  { return "已登录"; }

  }

  }

  messagename:用来实现重载;由于webservice无法实现参数的重载,因此需要用这个属性来标志方法的重载

  public int Add(int i)

  [webmethod(messagename="Add1")]

  public int Add(int i,int j)

  这样在调用的时候Add是指第一个,Add1是指第二个方法;

  TransactionOption:((/ □ ) 理解了半天,刚准备验证下,发现msdn中.net2.0以上版本不再支持,so····)指示当前的这个方法是 是否在“事务模式”下运行;(即当方法AAA被标记为事务模式下运行时,如果执行AAA这个方法的过程中发生异常,且被捕获,那么AAA这个方法会自动回滚到执行前的状态;如果未发生异常,则提交事务。除非该方法显示调用SetAbort)。

  其中TransactionOption.Disabled,NotSupported标识不在事务模式下运行

  Supported:标识当前的方法中如果有事务(即显示指明了事务,比如sql处理事务)的话就在事务模式下,没有的话就普通模式执行;

  Required和RequiredNew标识当前方法都在事务模式下执行;

  CacheDuration:指示当前方法的缓存时间。默认为不缓存;(这里有可能存在的问题,HTTP协议支持浏览器设置http消息头cache-control属性,而当asp.net应用程序发现http请求中的cache-control=no-cache的时候,就会忽略asp.net程序所设置的缓存;ps:对缓存的理解又多了一点。)

  BufferResponse:msdn解释:

  WebMethod 属性 (Attribute) 的 BufferResponse 属性 (Property) 启用对 XML Web services 方法响应的缓冲。当设置为 true(默认设置)时,ASP.NET 在将响应向下发送到客户端之前对整个响应进行缓冲。缓冲非常有效,它通过最小化辅助进程和 IIS 进程之间的通信来帮助提高性能。当设置为 false 时,ASP.NET 以 16KB 的块区缓冲响应。通常,只有在不想将响应的全部内容一次缓冲到内存时,才将该属性 (Property) 设置为 false。例如,您在反写一个集合,该集合正在以流的形式从数据库输出其项。除非另外指定,默认值为 true。有关更多信息,请参见 WebMethodAttribute.BufferResponse 属性 (Property)。含义:即当false的时候,asp.net程序将需要返回给浏览器的数据一点一点返回,而不是全部读取到内存中再Response;应用场景:当需要返回的数据非常大,而又不想占用太大的内存,那么设置为false,将没读取16kb内容就返回给Browser;


发表于 2018-7-9 09:18:23 | 显示全部楼层
确实是难得好帖啊,顶先
回复

使用道具 举报

发表于 2018-7-13 16:57:07 | 显示全部楼层
回的人少,我来小顶一下
回复

使用道具 举报

发表于 2018-7-18 11:35:10 | 显示全部楼层
正需要,支持楼主大人了!
回复

使用道具 举报

发表于 2019-1-24 12:37:42 | 显示全部楼层
确实是难得好帖啊,顶先
回复

使用道具 举报

发表于 2019-1-31 15:00:58 | 显示全部楼层
这个帖一般般,还可以哦。
回复

使用道具 举报

发表于 2019-2-2 17:05:44 | 显示全部楼层
我只是路过打酱油的
回复

使用道具 举报

发表于 2019-2-22 10:09:07 | 显示全部楼层
么有分,谁能送我点积分啊::>_<::
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接
 
 
工作时间:
8:00-18:00
客服热线:
15368564009
客服微信