多个Web应用发布到一起而引起的编译器错误消息: CS0433

      我有两个Web应用,由于工作的需要把两个Web应用(Web Application非Web Site)发布到一起,前提是已经解决好文件重名的问题,原来发布后一直没有出现问题工作的好好的,系统大约有一年没有更新。最近进行了一些小规模的更新,发布到IIS6.0上,出现下列错误

“/ncmes”应用程序中的服务器错误。
--------------------------------------------------------------------------------
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0433: 类型“ASP.usercontrol_uc_user_grid_cnf_ascx”同时存在于“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/ncmes/78e128b9/8a5576c6/App_Web_txdxvy-a.dll”和“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/ncmes/78e128b9/8a5576c6/App_Web_lormzf9n.dll”中

源错误:

[没有相关的源行]
 
源文件: c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/ncmes/78e128b9/8a5576c6/App_Web_cpbom_r.aspx.e8453837.vhovwuph.0.cs    行: 592

在网上找了一些方法,http://www.cnblogs.com/skyd/archive/2009/08/13/1544829.html ,所有都试了,还没有搞定。自己捣鼓了4个小时终于搞定。
我的系统原因是两个项目中用户控件存放的公共目录名一致所导致,我的两个web应用下都有个叫"UserControl"的文件夹,发布的时候在此文件夹下分别放各自的ascx文件。在请求某些用到了此用户空间页面时就出上边的错误,但有些就不出错。后来我把一个web应用的用户控件存放的公共目录名改成“UserControl2”在发布就正常了。但是如果是aspx文件放到相同目录下就没这问题。
可能的原因:通过使用Reflector分析上面的两个dll,发现确实是有相同的类,两个dll包含的类不完全一样,只有部分类是相同的,并且都是"UserControl"下包含的ascs类。当第一次请求页面时,.net会在c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/虚拟目录名/ 动态生成缓存的dll,我怀疑可能是生成的策略中有对文件夹的特殊处理,并且没有考虑好多个系统发布到一起时的问题,也可能是用户控件ascs有其特殊性,具体原因我只是猜测。以后如果要把系统发布到一起时,不仅要考虑文件名不能重复,文件夹也不能重复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值