2010-09-06 95 views
2

因此,让我先说说这个错误的奇怪之处在于应用程序正在运行,并且错误冒泡到事件日志,但是它是间歇性的。有时候它会在两个小时之间发生,有时会持续几分钟,有时会持续半小时。似乎没有直接绑定到请求(并且请求似乎没有因此而失败,尽管几乎所有的请求都应该立即到达NHibernate)。我已经确保dll在bin中,它是畅通无阻的(如果其中任何一个不是这种情况,我会期望它总是失败,而不仅仅是有时)。ASP.NET应用程序为NHibernate抛出“无法找到程序集”错误

对于应用程序,我使用Nhibernate 2.1.2,castle activerecord 2,ASP.NET MVC 2,并且该应用程序部署在SQL Server 2005 for SQL Server 2005的IIS 7.5上。我在Stack上看到类似的错误,但没有答案,希望有人对此错误有所了解。

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) 
+0

无法找到哪个组件?你能提供堆栈跟踪还是更详细的错误信息? – 2010-09-06 14:51:24

+0

Nhibernate。我添加了堆栈跟踪。 – Paul 2010-09-07 02:24:54

回答

3

这是否也在应用程序启动时发生,或者是否始终在应用程序启动后的某个时间?

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

+0

真棒,谢谢。错误是绝对的(正如你所指出的)隐藏了一个不同的错误。在我的情况下,必须处理Session对象的生命周期,但这里关键的一点是,你需要使用类似HTTP模块的东西来挖掘真正的原因。 – Paul 2010-09-18 05:52:03

0

我已经得到了类似的错误,发现真正的问题是没有被报道。这里接受的答案是特定于ASP.NET(这是正确的,因为这是问题的关键),但我遇到了WPF浏览器应用程序(它没有web.config文件)的问题,我发现另一种方式来看看我真正的问题是什么。我想我应该发布它,以防其他人会发现它有帮助。

如果您在Visual Studio中调试时遇到这些问题,可以进入Debug> Exceptions并选择“Thrown”复选框(我正在使用VS 2008)。对我而言,这允许在Visual Studio中报告错误而不是我的Web浏览器,并提供更详细和准确的错误信息。

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

相关问题