• 14.C#/.NET编程中的常见异常(持续更新)


    1.Object reference not set to an instance of an object.

      未将对象引用(引用)到对象的实例,说白了就是有个对象为null,但是你在用它点出来的各种东西。

    2.An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

      一个实体对象不能由多个IEntityChangeTracker实例引用。首先参见MSDN中对于Entity Framework中的增删改的说明,特别是修改对象那里。我们看到说明文档里有这样一句话“对象服务使用IEntityChangeTracker的实例来跟踪对附加到ObjectContext的对象的更改”,1)Tracker是用来跟踪某个对象属性更改的,2)被跟踪的是附加到某个上下文的对象,3)错误信息是说一个对象不能被多个Tracker跟踪,即一个附到特定的Context中的对象有一个Tracker。

      然后我觉着帮我解决这个问题的博客,说的不是太清楚,也可能是我理解能力比较差,试着自己分析一下。对应到原帖,An Entity指的肯定是user,为什么它会有多个IEntityChangeTracker的实例,明显是因为他被附到两个Context中,RoleManager.GetRoleById()方法和UserManager.Add()方法的上下文也就是Entities不一样。

      通俗来讲,对于同一个实体对象(数据库关联)的操作,请在同一个上下文中完成。

    3.Collection was modified; enumeration operation may not execute.

      对于一个集合进行foreach遍历,如果foreach中对集合有添加和移除操作,就会报这个错。

      这是IEnumerator自身的特性决定,参见备注部分:

    --------------------------------大家晚上好--------------------------------

      只要集合保持不变,枚举数就保持有效。如果对集合进行了更改(如添加、修改或删除元素),则枚举数将失效且不可恢复,并且下一次对 MoveNext 或 Reset 的调用将引发 InvalidOperationException。如果在 MoveNext 和 Current之间修改集合,那么即使枚举数已经无效,Current 也将返回它所设置成的元素。

      枚举数没有对集合的独占访问权;因此,枚举通过集合在本质上不是一个线程安全的过程。即使一个集合已进行同步,其他线程仍可以修改该集合,这将导致枚举数引发异常。若要在枚举过程中保证线程安全,可以在整个枚举过程中锁定集合,或者捕捉由于其他线程进行的更改而引发的异常。

    --------------------------------大家晚上好--------------------------------

      只需要把foreach改为for来遍历就好了。有几个画图的错我忘了。。。今天先写这么多好了

    4.Unrecognized attribute 'targetFramework'.

      这个错误发生在网站发布过程中,即分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。

      问题在今天(2014-11-25)上线的时候发生的,原因是IIS应用程序池的.NET CLR version配置错误。

      (PS:超链接中对于上线过程中出现的一些未知概念有相应解释,诸如w3wp.exe等。)

      

      通常一个网站对应一个与网站同名的应用程序池,IIS的应用程序池.NET CLR版本应当与开发使用的.NET CLR版本一致。

      本机上一般是2.0版本,开发时使用的版本通常较高,从而导致不匹配。参考

    5.Object moved to here

          使用Response.Redirect()方法时,如果传入的是null或者“”,在页面上就会显示Object moved to here。

          这是因为服务器返回给浏览器一个302指令要求重新跳转,但是并没有发给其要跳转的url,浏览器不知道要跳转到哪里。参考

  • 相关阅读:
    python之面向对象
    Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
    Python之模块与包
    2.1 、寻找元素 (重要的选择器和筛选器)
    4、循环语句 和 异常处理
    7、其他知识点
    2、函数 面向对象
    3、数据类型
    1、初识JavaScript
    2、css
  • 原文地址:https://www.cnblogs.com/hannyblogs/p/4119824.html
Copyright © 2020-2023  润新知