asp.net中WebService属性记录

1 webservice 属性

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

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

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

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

/// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [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;

时间: 2024-07-31 17:20:05

asp.net中WebService属性记录的相关文章

ASP.NET中IsPostBack属性研究

通过页面的IsPostback属性,可以检查 .aspx 页是否为传递回服务器的页面:当加载页面并对控件的更改属性处理之前,用户可以在page_Load事件中检查该页面是否被传递回的页面. 一般是在page_load中检查是否是第一次加载本页或是判断是否是用户提交(PostBack)if (!IsPostBack) {//do something}在用DataGrid访问和更新数据库时没有注意到这个问题,会出现各种各样的奇怪问题,比如我的这种. 问题描述:用DataGrid访问和更新数据库(SQ

asp.net中webservice与android的json数据交互方式设置

一 .服务器端设置 1.修改web.config 在web.config里面的的system.Web节点添加 <webServices> <protocols> <add name= "HttpPost"/> <add name= "HttpGet"/> </protocols> </webServices> 2.修改XX.asmx.cs [WebService(Namespace = &quo

ASP.NET中DesignMode属性

参考:http://blog.sina.com.cn/s/blog_4c9da9b50100r4u7.html http://book.51cto.com/art/200902/108836.htm 在设计模式下,控件生命周期的所有方法并不是都执行的,比如CreateChildControls,OnPreRender,Load等方法在设计模式下就不会执行.而Init,Construct(构造方法),Render,RenderContents,还有Dispose等方法在设计模式下就会运行.这样设计

ASP.net中的AJAX学习记录六 无刷新的数据编辑(GridView和DetailsView结合实例)(转)

本篇博客是仿照书中实例,实现GridView和DetailsView结合无刷新的数据编辑效果,页面效果:当点击GridView1的行或换页时,都会引发DetailsView1的数据绑定显示至页面,同时当使用DetailsView1编辑.删除.添加时,也会引起GridView1的重新绑定,整体页面实现无刷新. 页面布局: 1.新建AJAX窗口,命名为:"NoRefreshEdit.aspx".要想实现页面无刷新编辑,就必须使用两个Updatepanel. 2.在NoRefreshEdit

asp.ne中使用ajax和controller进行通信问题记录

为了页面显示和后端处理分离,使用了html+ajax+mvc的形式进行处理. 在这其中遇到的问题记录: 1. 在使用ajax向controller请求数据的时候,"get"方法会缓存上一次的请求,导致controller方法不能被debug跟踪到,开始以为是vs出错了,到后来才搞清楚. 解决方法:请求controller路径时加上随机数,或者使用"post"方法. 2. 在使用"POST"方法时,IE11要小心处理,因为ie会出现怎么都执行不了的

动态调用WebService时动态获取返回Class中的属性

直接给代码: var ret = HTTPS.WSHelper.InvokeWebService("WebService URL", "MethodName", object[] args);var type = ret.GetType();var propertyinfo = type.GetProperty("result");if (propertyinfo == null){       throw new Exception("

asp.net5中使用NLog进行日志记录

asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大.asp.net5中也包括NLog的实现,下面把最简单的使用方法写出来,抛砖引玉,让更多对此不熟悉的同学们能借此入门. 1.在project.json中添加对Microsoft.Framework.Logging.NLog的引用,目前最新是beta8版本: 2.然后添加NLog.config配置文件到

在ASP.NET中使用SOAP Extensions捕获WebService异常

原文:在ASP.NET中使用SOAP Extensions捕获WebService异常 Application_Error不能捕获的异常 [WebMethod] public string HelloWorld() { throw new Exception("this exption can't be handled by Application_Error Method"); return "Hello World"; } 定义Application_Error

ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现

在电商产品模块中必经的一个环节是:当选择某一个产品类别,动态生成该类别下的所有属性和属性项,这些属性项有些是以DropDownList的形式存在,有些是以CheckBoxList的形式存在.接着,把CheckBoxList的选中项组合生成产品SKU项. 本系列将在ASP.NET MVC中实现以上功能.但本篇,先在控制台实现属性值的笛卡尔乘积. 关于属性的类: public class Prop { public int Id { get; set; } public string Name {