随笔 - 51  文章 - 0 评论 - 210 trackbacks - 6
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

严正声明 : 本站文章转载请注明出处.

与我联系

搜索

 

留言簿(11)

我的标签

随笔分类

随笔档案

Atlas相关

积分与排名

  • 积分 - 58801
  • 排名 - 800

阅读排行榜

最近由于项目布署需要在解决方案里面添加了WebDeploymentProject, 但是在生成这个工程时总是报循环引用,查阅相关资料提示关闭web.config里面的批处理开关<compilation batch="true" />但好象还是不管用. 据“官方”的说法是asp.net将不同的文件夹里面的控件和页面编译到一个程序集中产生的问题。后来实在没办法,只好将所有的用户控件全部搬到一个目录里面去,改了两天两夜才改完, 但是结果仍然不能满意。

无奈之中打开了几个用户控件忽然发现,控件的名称居然跟后台的类名称不能对应起来。这样问题就比较明显了,我们的开发人员在编写控件后对控件进行了改名,但是VS里面的操作默认只将页面名称和后台代码的文件名称改过来了,里面的类名称并没能改过了,这样的话以后假如再有这样的一个控件,并且名称正好与原来的那个类名相同的话就会出问题了,出现了两个类名称相同的冲突,我们现在确实存在这样的情况,但是这个并不能在生成网站的时候被发现。但是生成WebDeploymentProject的时候是会被检测出来的,但是为什么没有具体的报错信息出来呢,只是简单的提示一个"不允许循环引用"的错误,一度也把我搞得很困惑,后台在配置管理器里面发现默的编译输出信息是被设为“最小’模式,这样在输出控制台上看到的信息就非常有限,只要把这个输出模式改为“详细”或者是“诊断”模式就可以发现问题,它会报告某两个控件的继承类名称出现了重复,这样就可以轻松定位到故障点了。

总的说来这次的问题还是由于编码的不规范造成的,基于此有必要强调一些基本的编码规范.
1. 控件名称要与类名对应,在修改控件名称时类名称也要一并修改.
2. 给控件和页面后台类加上命名空间减少出错机会.
3. 拖用户控件的时候不充许使用uc1,uc2这样的名字空间,使用统一的名称.4. 当两个控件需要重用后台类代码时需要将后台类独立出来,不使用CodeFile的属性指名,使用Inherits来指定继承的类名称. 如果不这样也会出问题.

另外要说明的是在使用WebDeploymentProject的时候它对代码的要求比较严格,凡是存在警告的编译错误的代码都不能生成成功。使用WebDeploymentProject的好处也是很明显的,它可以直接将页面预编译存储下来,这样就不需要Asp.net运行环境在程序第一次运行的时候进行预编译,启动速度会提高不少.

posted on 2007-10-20 16:58 沙加 阅读(352) 评论(0)  编辑 收藏 网摘 所属分类: .NET相关

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: