代码之家  ›  专栏  ›  技术社区  ›  Paul

ASP.NET应用程序引发nhibernate的“找不到程序集”错误

  •  2
  • Paul  · 技术社区  · 14 年前

    所以让我先说,这个错误的奇怪之处在于应用程序正在运行,错误气泡出现在事件日志中,但它是间歇性的。有时是两个小时,有时几分钟,有时半小时。似乎与请求没有直接联系(而且请求似乎不会因此而失败,尽管现在几乎所有请求都应该访问nhibernate)。

    我已经确保了dll在bin中,它是未阻塞的(如果不是这样的话,我希望它总是失败,而不仅仅是有时)。

    对于这个应用程序,我使用的是nhibernate 2.1.2、Castle ActiveRecord 2、ASP.NET MVC 2,并且这个应用程序部署在带有SQL Server 2005的IIS 7.5上,用于数据库。我在堆栈上看到了类似的错误,但没有答案,希望有人能洞察这个错误。

    Message: Unable to find assembly 'NHibernate, Version=2.1.2.4000, Culture=neutral,    
    PublicKeyToken=aa95f207798dfdb4'.
    
    StackTrace:    at    
    System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
    at 
    System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo 
    assemblyInfo, String name)
    
    at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, 
    String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, 
    Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo 
    assemblyInfo, SizedArray assemIdToAssemblyTable)
    at 
     System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
    at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
    at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)
    at System.AppDomain.Deserialize(Byte[] blob)
    at System.AppDomain.UnmarshalObject(Byte[] blob)
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Community Reversed Engineer    7 年前

    这是在应用程序启动时发生的,还是在应用程序启动后的某个时间发生的?

    检查 Unhandled IIS Exception - How can I track it down (有一个 非常 类似的堆栈跟踪),导致 http://unhandledexception.codeplex.com/sourcecontrol/latest

        2
  •  0
  •   kevinpo    12 年前

    我得到了类似的错误,发现真正的问题没有被报告。这里接受的答案是特定于ASP.NET的(这很好,因为这就是问题所在),但是我在一个WPF浏览器应用程序(没有web.config文件)上遇到了问题,我找到了另一种方法来查看我真正的问题是什么。我想我应该把它贴出来,以防别人发现它有帮助。

    如果在Visual Studio中进行调试时获得这些信息,则可以转到调试>异常并选择“抛出”复选框(我使用的是vs 2008)。对于我来说,这允许在Visual Studio而不是Web浏览器中报告错误,并提供了更详细和准确的错误信息。

    如果您这样做,请认识到其中一些异常可能以前已经处理过,但现在将通过在这些点上中断来中断您的工作流程。如果发生这种情况,您可以关闭不需要中断的异常。