ASP.NET运行时错误:找到了模糊匹配

时间:2009-08-24 18:09:04

标签: c# .net asp.net web-applications asp.net-2.0

最近,我的团队将ASP.NET项目从.NET 1.1转换为.NET 2.0。到目前为止,除了一个网页外,一切都很顺利。

这是我尝试打开此页面时收到的错误消息:

  '/'应用程序中的服务器错误。      

分析程序错误说明:错误   解析期间发生的   为此提供服务所需的资源   请求。请查看以下内容   具体的解析错误细节和   适当修改你的源文件。

     

分析器错误消息:模糊匹配   找到。

     

来源错误:

     

第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

我尝试重命名类并重命名文件名,但它不起作用。

有人对此有任何想法吗?

6 个答案:

答案 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来捕获它。