欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net中WebService属性记录

程序员文章站 2022-06-07 20:34:10
1 webservice 属性 [webservice(description="ddddd"),namespace="https://`````",name...

1 webservice 属性

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

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

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

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

/// 
    /// webservice1 的摘要说明
    /// 
    [webservice(namespace = "https://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;