Michael's

focus on architecture & hi-performance

粉郁闷的Exception

汗一下这个“粉”先,嘿嘿

交待Exception之前,先说一下最近手头上的一个项目:公司OA的一部分。由于是公司OA,所以当然是自己来写,再由于自己之前从没做过Web开发,所以基于原型设计的考虑,一个星期左右的时间用Winform写了一个全功能版本。然后这个星期一边摸索asp.net 2.0到底是咋回事,一边将Winform版本移植成web版本,期间更是经历了从提取WebService接口,到试写WPF客户端,最终还是回归asp.net 2.0版本的"辛酸历程"

所幸的是终于在周末之前将页面功能完成,美化的工作已经将css粗略写了一遍,且应用到项目中.

熟悉asp.net的人都知道里面有很大一部份操作都跟权限有或多或少的关系,这几天很大一部分时间也是为这个访问权限甚伤脑筋.

由于公司同事人数不多,为了初期开发的方便,我采用文件序列化的形式保存用户数据,以及所以提交至服务器的页面数据.数据保存在C:\Inetpub\wwwroot\项目文件夹下,且加入了vss版本管理中.所有数据都会发生读/写的操作.

在测试的过程中,页面经常抛出"无操作文件数据流权限"的异常,当初还以为是文件夹的用户访问权限给的不够,一狠心将所有可能的用户全都勾上了,但是每次到运行时还是会有异常抛出,可有时又不会,甚是奇怪,直到今天签入所有代码前一个小时才真正查清楚其原因.

由于这个项目应用到了WF引擎,熟悉m$ WF引擎的人知道,其中有一个CustomPersistService,可用到持久化(Persist)长期运行的工作流实例对象到本地硬盘或数据库中,.net 3.0默认提供了持久化到数据库的一个类,同时也可以在PersistService基类的基础上,开发自己的持久化服务.于是我便写了一个持久化到本地文件的FilePersist类,每次当WorkflowInstance idle的时候都会自动发生持久化的动作,将当前状态的工作流对象写入到硬盘中,在我的项目中,就是写入到C:\Inetpub\wwwroot\项目下的其中一个文件夹中,由于该文件夹是页面初始化时动态创建的,所以默认情况下是没有加入到vss版本管理中去的.

问题就刚刚好出现在这个地方,前两天异常抛出的时候我都没怎么仔细看VS2005 的解决方案面板,今天才发现这个自动创建的文件夹也被VS2005"自作聪明"的添加进vss了.可想而知,在该文件夹下的所有文件都是只读的了!!因此在运行时我要向文件中持久化工作流对象时,一定会发生没有权限访问的异常!

ps.第一次向首页post,有点惴惴不安的 :)

posted on 2007-03-23 21:29 m.s 阅读(2849) 评论(5) 编辑 收藏

导航

统计信息

News