ASP.NET应用程序为NHibernate抛出“无法找到程序集”错误

时间:2010-09-06 14:47:24

标签: asp.net nhibernate debugging iis exception

所以让我首先说一下这个错误的奇怪之处在于应用程序正在运行,并且错误会在事件日志中冒泡,但它是间歇性的。有时它发生的时间是2小时,有时是几分钟,有时是半小时。似乎没有直接与请求绑定(并且请求似乎没有因为它而失败,尽管现在几乎所有请求都应该点击NHibernate。)

我已经确保dll在bin中,它已被解锁(如果其中任何一种情况都不是这样,我会发现它总是会失败,而不仅仅是有时)。

对于应用程序,我正在使用Nhibernate 2.1.2,城堡activerecord 2,ASP.NET MVC 2,并且该应用程序部署在IIS 7.5上,其中包含SQL Server 2005 for db。我在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)

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

我遇到了类似的错误,发现真正的问题没有被报道。这里接受的答案是特定于ASP.NET(这很好,因为这是问题所在),但我遇到了WPF浏览器应用程序(没有web.config文件)的问题,我发现另一种看待我真正问题的方法。我想我应该发布它以防其他人发现它有用。

如果您在Visual Studio中进行调试时获取这些内容,则可以转到Debug>例外并选择“Thrown”复选框(我使用的是VS 2008)。对我来说,这允许在Visual Studio而不是我的Web浏览器中报告错误,并提供更详细和准确的错误信息。

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