Asp.net MVC突然变慢,缓存消失的一种原因
今天使用Sqlite数据库时,在插入数据后,网站变慢。仔细检查代码,没有发现异常,只有一点:缓存莫名消失。缓存策略没有设置依赖性,百思不得其解:数据库改变,导致缓存消失?起初以为是sqlite的问题,Google后没有答案!
于是想写一个测试程序,写到一半,发现了问题:自己为了图省事将Sqlite数据库放在了bin目录下。现在看来bin是asp.net进程重点监视目录,只要此目录中的文件改变了,就会导致应用程序重新编译,不但缓存丢失,还导致asp.net程序重新预热,访问自然变慢!由此看来asp.net MVC还是动态编译的。测试环境是asp.net mvc2.0+3.5框架+iis6.0+win2003。
解决方法也很简单:将sqlite数据库文件放到App_Data文件夹下,其实这里才是放我们数据文件的地方,例如一些txt文件,都应放于此。
其实动态编译对于动态发布才有意义吧,我们的Asp.net mvc都是一次性发布的,动态编译好像没有必要,可是又找不到预编译的发布选项,望牛人指点!
另附Asp.net中使用Sqlite数据库的注意事项:
1、连接字符串需要全路径:
ConnectionString = " Data Source= " + HttpRuntime.AppDomainAppPath +
" \\App_Data\\test.db3;Pooling=true;FailIfMissing=false " ;
2、“Unable to open database file”错误:
此错误是由于数据库路径不对,更确切地说是:上边的连接字符串的全路径中有一个目录不存在,才会提示该错误,因为 FailIfMissing=false 如果数据库文件不存在,会自动新建一个同名的数据库文件。这种连接字符串会导致另一个错误的出现:“XX表不存在”。看来还是改为true好用。
3、“数据库文件只读”错误:
该错误是由于没有对数据库文件所在目录的写权限,添加此用户的读写权限
var user= System.Security.Principal.WindowsIdentity.GetCurrent().Name //此 windows用户需要写权限
随笔分类 -Asp.net
Asp.net MVC突然变慢,缓存消失的一种原因 2012-01-09 11:38 by slmk, 1725 visits, 网摘 , 收藏 , 编辑
6 Comment Categories: Asp.net
[asp.net]控制ajax接收数据的编码格式和避免乱码的方法 2011-11-22 09:30 by slmk, 1003 visits, 网摘 , 收藏 , 编辑
3 Comment Categories: Asp.net
[Asp.net]更新全局程序集缓存的注意事项 2011-11-21 11:30 by slmk, 53 visits, 网摘 , 收藏 , 编辑
0 Comment Categories: Asp.net , IIS
Asp.net页面的编码格式引起的"密钥集不存在"错误 2011-11-16 09:14 by slmk, 861 visits, 网摘 , 收藏 , 编辑
3 Comment Categories: Asp.net , IIS
[Silverlight]Wcf Ria Services权限控制的实现 2011-11-14 17:28 by slmk, 78 visits, 网摘 , 收藏 , 编辑
0 Comment Categories: Asp.net , Silverlight
多个Silverlight应用程序如何共享一个DomainService 2011-11-14 17:02 by slmk, 686 visits, 网摘 , 收藏 , 编辑
1 Comment Categories: Asp.net , Silverlight
只需一步实现Asp.net多数情况下的Forms单点登录 2011-11-11 17:38 by slmk, 1435 visits, 网摘 , 收藏 , 编辑
2 Comment Categories: Asp.net
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于Asp.net MVC突然变慢,缓存消失的一种原因的详细内容...