今天是程序员节,我决定开启一个.NET面试题的专栏,将从今天开始,每天发一篇关于.NET的面试题库,希望会对还未工作的同伴有所有帮助。
博主的.net core学习交流群—qq裙:831181779
1. Session有什么重大BUG,微软提出了什么方法加以解决??
是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
2. session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法
使用用户配置Profile,或者自行编程存储在数据库中。
3. 什么时候会用到cookie,session?它们的区别分别是什么?
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
1.session 在服务器端,cookie 在客户端(浏览器)
2.session 默认被存在服务器的一个文件里(不是内存)
3.session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4.session 可以放在 文件、数据库、或内存中都可以。
5.用户验证这种场合一般会用 session 因此,维持一个会话的核心就是客户端的唯一标识,即 session id
4. asp.net状态管理技术中可用于保存与传递数据的方法的是
所谓 “状态管理”,是指使用ASP.NET中的ViewState、Cookie、Session和Application等对象实现页面数据缓存和传递的技术。
5. 什么是viewstate,能否禁用?是否所用控件都可以禁用?
Web页面是没有状态的,ViewState(视图状态)可用来保存Web页面在客户端和服务器端往返过程的状态
说简单点ViewState只不过是Hidden控件,加上微软写上的一些代码而已
可以禁用,有三种方法:
1)禁用单个控件:控件.EnableViewState = false。
2)禁用单个页面:在@Page指令中设置这个属性以达到页面级禁用ViewState的目的。
3)禁用整个程序:修改Web.config中相应元素的属性即可。
最后,禁用服务器全局的ViewState,修改.Net Framework安装目录下的machine.config即可。