日期:2014-05-17  浏览次数:20413 次

asp.net中所有用户可读写的存储定义
1、asp.net中所有客户端都能读写的存储怎么实现?并且这个存储要求能被ajax读写。
application只能在application_statrt里写入
cache可否实现,怎么实现?
2、global.asax会为不同客户端实例化,只是application_statrt和application_end只有第一个客户端请求时被调用,这个理解对吧
3、类中的静态变量在类被不同客户端实例化后,任然使用同一存储空间吧

望各位赐教!
------解决方案--------------------
asp.net只是运行在web服务器上的程序,不是运行在浏览器端的。

你可以使用asp.net访问数据库,也可以访问服务器上的app_data下的文件。

ajax是浏览器端的程序,它访问你的aspx或者ashx,通过get或者post方式提交各种参数对象,读取输出的内容到浏览器端(这个只要动手学习就行,不要只停留在概念上)。

global.asax在asp.net只在第一个客户端请求时被调用。但是要注意,asp.net程序可能随时重启(同时也就会丢失Sessio集合、Application集合、static变量等的数据。因为重启了嘛。比如说现在asp.net已经处理了1200个请求,但是有一个请求在asp.net应用的网站下创建了一个子目录(但是不在app_data目录下),或者是杀毒软件动了一下web.config文件,或者是bin下某个文件被动了一下,或者人家IIS原本就设置为当处理1200个请求时就要回收一次应用程序池,或者IIS设置为当占用内存达到物理内存的90%时回收一次应用程序池、或者某个asp.net程序遇到了严重的程序错误.....无数种情况下,asp.net程序都会重启,而客户端的第1201个请求实际上是新启动的asp.net进程执行的,当第1200个请求执行完毕之后就的进程就销毁了。这时候,第1201个请求到来时,global.asax又被调用了一次。

静态变量当然就是完成其“静态”的功能的。用不着纠结什么Sigletone模式。


------解决方案--------------------
应该可以把静态数据独立出来作为单独的可调用的api网站,
并提供给你的其他网站操作接口,
这样你保存的数据也方便维护