dudu
为程序员打杂的站长
博客园
首页
博问
闪存
新随笔
联系
订阅
管理
随笔-1184 文章-304 评论-26131
2006年3月2日
ASP.NET 2.0中小心Profile命名冲突
昨天打算将
博客园论坛
程序迁移到ASP.NET 2.0,博客园论坛用的是宝玉汉化的Asp.net Forums2.0 RC2,参考
Upgrading VS 2003 Web Projects to be VS 2005 Web Application Projects
将项目从VS 2003迁移到VS 2005中并成功编译。可是在运行时,却出现编译错误,详细错误信息如下:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0102: The type 'ASP.themes_default_skins_skin_navigationmenu_ascx' already contains a definition for 'Profile'
Source Error:
Line 207: }
Line 208:
Line 209: protected System.Web.Profile.DefaultProfile Profile {
Line 210: get {
Line 211: return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\forums\9ef6037b\2a750bf2\App_Web_skin-navigationmenu.ascx.4f634227.fnkdfznr.0.cs Line: 209
打开App_Web_skin-navigationmenu.ascx.4f634227.fnkdfznr.0.cs的代码检查了一下,发现有两处地方定义了Profile:
protected
global::AspNetForums.Controls.ForumAnchor Profile;
protected
System.Web.Profile.DefaultProfile Profile
{
get
{
return
((System.Web.Profile.DefaultProfile)(
this
.Context.Profile));
}
}
显然错误就来自Profile的重复定义。
App_Web_skin-navigationmenu.ascx.4f634227.fnkdfznr.0.cs是由ASP.NET 2.0运行时动态编译Web\Themes\default\Skins\Skin-NavigationMenu.ascx生成的文件,所以我们需要进一步查看Skin-NavigationMenu.ascx,原来在Skin-NavigationMenu.ascx中定义了一个id为“Profile”的控件:
<
forums:ForumAnchor
class
="menuLink"
runat
="server"
Visible
="false"
id
="Profile"
AnchorType
="MenuEditProfile"
/>
于是, 动态编译生产的代码中就有protected global::AspNetForums.Controls.ForumAnchor Profile;的定义。
而ASP.NET 2.0为了支持Profile功能,编译时在产生的代码中也增加了一个System.Web.Profile.DefaultProfile Profile的定义,从而引起了这个问题。
所以,在ASP.NET 2.0的页面或用户控件代码中,不要使用Profile变量名,以免引起命名冲突从而产生运行时错误,在编译时VS 2005也不会给你任何提示。
对于我这里遇到的问题,我采取的处理方法是在Skin-NavigationMenu.ascx中加上CompilationMode="Never"。也就是: <%@ Control Language="C#" CompilationMode="Never"%>,这样就不让ASP.NET 2.0运行时对这个文件进行动态编译,因为Skin-NavigationMenu.ascx中没有代码,也没有code behind文件,不然的话就要对Profile改名,但这会影响其他地方的代码。
我觉得这里也是ASP.NET 2.0的美中不足之处,如果设计时考虑到这一点,起一个不容易重复的名称,当然更好的是在动态编译时自动检测这个命名冲突,并对冲突的命名进行处理,那就锦上添花了。设计之美不仅表现在架构等高层次的地方,更体现于这些细微之处。
在网上搜索这个问题,大多数的回答都是认为是asp.net forum与asp.net 2.0不兼容性,也就认为asp.net forum不能运作在asp.net 2.0上。写到这的时候,我进行了简单的测试,不在.NET 2.0中对Asp.net Forums2.0 RC2进行编译,直接让ASP.NET 1.1版的Asp.net Forums2.0 RC2运行在ASP.NET 2.0上,并解决上面说明的问题,测试的结果是可以正常运行,我只是简单测试:用户登录、发表文章、回复文章。没有进一步测试,不知是否有其他问题。有兴趣的朋友可以进一步测试。
posted @ 2006-03-02 15:10 dudu 阅读(3147) 评论(3)
编辑
公告
人生的真正价值在于从何种程度与何种意义上摆脱自我!
博问,帮您解决IT难题
昵称:
dudu
园龄:
8年1个月
粉丝:
1545
关注:
212
<
2006年3月
>
日
一
二
三
四
五
六
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1. 浏览器兼容CSS代码:按钮文字垂直居中(input button text vertical align)
2. C#正则表达式操作中使用LINQ
3. Entity Framework - 理清关系 - 基于共享主键的单向一对一关系
4. Entity Framework - 理清关系 - 基于外键关联的单向一对一关系
5. 享受无止境 - 改进版WCF Client
6. 2011年的那个“一”
7. 让Entity Framework不再私闯sys.databases
8. C# string Array to int Array
9. AutoMapper使用笔记
10. 遭遇IE8下的JavaScript兼容问题
我的标签
Entity Framework
(27)
ASP.NET
(13)
WCF
(11)
ASP.NET MVC
(10)
VS2010
(9)
Entity Framework 实践系列
(6)
JavaScript
(4)
新功能发布
(4)
Memcached
(4)
创业
(3)
更多
随笔分类
ASP.NET(29)
(rss)
C#(14)
(rss)
SharePoint(17)
(rss)
VS2005(8)
(rss)
WCF(5)
(rss)
博客系统开发(1)
(rss)
创业(14)
(rss)
电脑使用经验(19)
(rss)
读书(3)
(rss)
好歌收藏(9)
(rss)
开源(5)
(rss)
媒体报道(4)
(rss)
生活随笔(4)
(rss)
数据库技术(5)
(rss)
推荐阅读(18)
(rss)
网站功能发布(71)
(rss)
网站管理(165)
(rss)
网站性能优化(4)
(rss)
新闻推荐(2)
(rss)
宅急送快递门事件(12)
(rss)
随笔档案
2012年2月 (1)
2012年1月 (3)
2011年12月 (10)
2011年11月 (6)
2011年10月 (9)
2011年9月 (4)
2011年8月 (5)
2011年7月 (10)
2011年6月 (2)
2011年5月 (4)
2011年4月 (10)
2011年3月 (13)
2011年2月 (12)
2011年1月 (12)
2010年12月 (2)
2010年11月 (3)
2010年10月 (3)
2010年9月 (2)
2010年8月 (15)
2010年7月 (4)
2010年6月 (6)
2010年5月 (11)
2010年3月 (1)
2010年2月 (4)
2010年1月 (5)
2009年12月 (4)
2009年11月 (17)
2009年10月 (6)
2009年7月 (4)
2009年6月 (3)
2009年5月 (4)
2009年4月 (5)
2009年3月 (1)
2009年2月 (1)
2009年1月 (4)
2008年12月 (4)
2008年11月 (5)
2008年10月 (5)
2008年9月 (3)
2008年7月 (4)
2008年6月 (7)
2008年5月 (28)
2008年4月 (15)
2008年3月 (15)
2008年2月 (7)
2008年1月 (9)
2007年12月 (11)
2007年11月 (12)
2007年10月 (13)
2007年9月 (7)
2007年8月 (14)
2007年7月 (16)
2007年6月 (13)
2007年5月 (11)
2007年4月 (6)
2007年3月 (14)
2007年2月 (12)
2007年1月 (15)
2006年12月 (18)
2006年11月 (26)
2006年10月 (20)
2006年9月 (18)
2006年8月 (23)
2006年7月 (17)
2006年6月 (8)
2006年5月 (23)
2006年4月 (10)
2006年3月 (16)
2006年2月 (17)
2006年1月 (9)
2005年12月 (13)
2005年11月 (9)
2005年10月 (19)
2005年9月 (11)
2005年8月 (24)
2005年7月 (34)
2005年6月 (23)
2005年5月 (11)
2005年4月 (21)
2005年3月 (32)
2005年2月 (19)
2005年1月 (23)
2004年12月 (35)
2004年11月 (24)
2004年10月 (19)
2004年9月 (25)
2004年8月 (35)
2004年7月 (30)
2004年6月 (24)
2004年5月 (17)
2004年4月 (9)
2004年3月 (57)
2004年2月 (61)
2004年1月 (31)
相册
Imagination Festival 2007
TechED 2005
TechEd 2006
TechEd2007
广州沙龙活动
桌面
好书收藏
《.NET软件架构之美(英文影印版)》
经典文章
浪潮之巅
友情链接
真水无香
最新评论
阅读排行榜
评论排行榜
推荐排行榜