最近,我的团队将ASP.NET项目从.NET 1.1转换为.NET 2.0。到目前为止,除了一个网页外,一切都很顺利。
这是我尝试打开此页面时收到的错误消息:
2>'/'应用程序中的服务器错误。分析程序错误说明:错误 解析期间发生的 为此提供服务所需的资源 请求。请查看以下内容 具体的解析错误细节和 适当修改你的源文件。
分析器错误消息:模糊匹配 找到。
来源错误:
第1行:<%@ Control Language =“c#” AutoEventWireup = “假” 代码隐藏= “Template.ascx.cs” 继承= “eReq.Web.WebControls.Template.Template” TargetSchema = “http://schemas.microsoft.com/intellisense/ie5” %GT;第2行:第3行: 功能 ExpandCollapse_Template(inBtn, inSection,inSectionID){
源文件: /WebControls/Template/Template.ascx
行:1----------------------------------------------- ---------------------------------版本信息:Microsoft .NET 框架版本:2.0.50727.3053; ASP.NET版本:2.0.50727.3053
我尝试重命名类并重命名文件名,但它不起作用。
有人对此有任何想法吗?
答案 0 :(得分:37)
可能因组件名称不同而出现?例如Button1和button1,它编译为区分大小写,但作为caseinsensitive执行。
答案 1 :(得分:12)
在ASCX文件中,浏览每个控件并更改其ID。例如,
<asp:TextBox id="foo" />
将其更改为
<asp:TextBox id="foo1" >
您可能拥有一个ID与ascx文件中的属性匹配的控件,因此当编译器尝试使实例变量发生碰撞时。
答案 2 :(得分:3)
我遇到了同样的问题并且解决了,解决方案是检查你的代码,你会发现一些具有相同名称的控件:
protected Button Home;
protected System.Web.UI.HtmlControls.HtmlAnchor home;
你必须删除一行或评论它。
答案 3 :(得分:1)
选择的答案似乎是正确的答案。
在我的情况下,我发现我在代码隐藏中使用与aspx文件中的控件同名的变量,只是使用不同的用例。
答案 4 :(得分:0)
我将在web.config中搜索1.1和2.0对同一DLL的引用。在大多数情况下,我得到了它是System.Web.Extensions。
如果失败,还要检查Pages中的@registers。
祝你好运(找不到有趣的虫子!)
丹
答案 5 :(得分:-1)
这是由于只能在 System.Web.UI.Util.GetNonPrivateFieldType(Type classType,String fieldName)中描述为允许UI(.aspx / .ascx)字段的缺陷编译为不区分大小写,但尝试在初始解析期间将它们检索为区分大小写。
目前可能的补救措施是在编译时使用ms-build task来捕获它。