zoukankan      html  css  js  c++  java
  • 分析器错误信息: 发现不明确的匹配

    分析器错误信息: 发现不明确的匹配。

    今天又碰到这个错误了,晕啊;难到我又犯低级错误了?

    项目发布了一下,运行时就出错了,错误代码如下:

    说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 

    分析器错误信息: 发现不明确的匹配。

    源错误: 

    “/”应用程序中的服务器错误。
    分析器错误

    行 1:          <%@ page language="C#" autoeventwireup="true" inherits="web_GovOpen_DepartInfo, App_Web_departinfo.aspx.65a6504e" %>行 2:          行 3:          <%@ Register Src="top.ascx" TagName="top" TagPrefix="uc4" %>


    源文件: /web/govopen/departinfo.aspx            行: 1

    -------------

    这个错误的原因我自然是很清楚,只是不知道为什么它会出这个错。

    估计前一段,要新增功能,我没功夫做,让一个同事帮做了,可能是他在页面中新增的控件id与cs文件中我原有的变量名重名。查看了一下源代码,果然如此;

    今天有空,解释一下这个错误的原因吧。

    在ASP.net中,每个aspx页面都会有一个.cs文件,(好像不可以多个aspx共用一个cs的,我前面就碰到这个问题),在aspx页面中,我们会用到服务器控件,或html控件,这些控件的id命名时,如果与cs文件中的变量重名的话,就会出错;而且不管大小写是否一样,都会报错;

    可能大家会问,C#不是区分大小写的吗?C#是区分大小写的,也正是因为如此,我们在调试时不会报错,而IIS呢,它是不区分大小写的,发布后,就报错了。

    当然,如果你不想改动程序去修正这个错误的话,你也可以将整个项目的源程序复制到IIS目录下,就可以正常运行,呵呵,非常不建议这样做;

    我们写在程序时,虽然C#中,变量string company与string Company会被区分成两个变量;但我们并不提倡这样做,应尽量避免,这个大家一般不会写错;主要是aspx页面中的控件id,id之间也不要用相同的字符,而且与cs文件中变量名也不要采用相同的字符,不仅是区分大小写的问题;

    再有,就是,在程序中,我们写好了一类,如Deparment;而我们在aspx的页面中,放了一个控件,如gridview,其id为department或是Deparment,在cs文件中,我们照样可以Deparment.DataSource,以及Deparment.DataBind()来绑定,都不会报错的;而一旦发布后,到了IIS中,就会报错;

    这些命名方法,虽然不算错误的,但要避免,不要光看调试时报不报错,关键是,项目发布后是否正常运行;我们还要考滤项目发布后的运行环境,就是在IIS下的情况。

  • 相关阅读:
    C++中图片重命名
    linux 常用shell命令之wc
    Linux shell命令之cat
    linux 常用shell命令 ls
    开启博客之旅
    C#并行编程之Parallel的使用
    centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
    勒索病毒场景模拟及原理
    测试用例覆盖分类
    Centos 7下Hadoop分布式集群搭建
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan109.html
Copyright © 2011-2022 走看看