Dor*_*rin 6 .net asp.net exception-handling .net-assembly solrnet
我有一个在集成v4.0应用程序池中的IIS 7.0中运行的网站.从今天开始,我在Windows事件日志中得到以下异常.该网站在线1个月,之前我从未遇到此例外.我在每小时的同一分钟得到例外,这有点奇怪.
一些可能的原因:
我有一个我创建的库,我动态加载.
_searchProvider = (ISearchProvider)Activator.CreateInstance("SolrSearchProvider", "SearchProviders.SolrSearchProvider.SolrSearchProvider").Unwrap();
Run Code Online (Sandbox Code Playgroud)
该库提到了SolrNet.
你知道问题可能是什么,或者如何进一步研究找到解决方案???
An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 7192
Exception: System.Runtime.Serialization.SerializationException
Message: Unable to find assembly 'SolrNet, Version=0.4.0.1001, Culture=neutral, PublicKeyToken=bc21753e8aa334cb'.
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.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.AppDomain.Deserialize(Byte[] blob)
at System.AppDomain.UnmarshalObject(Byte[] blob)
Run Code Online (Sandbox Code Playgroud)
Mauricio Scheffer说:@Dorin:那么真正的问题是循环依赖.我建议发布一个关于它的新问题.
我解决了循环依赖的问题,我在Windows事件日志中不断收到相同的错误.
首先,我得到Unable to find assembly 'SolrNet, Version=0.4.0.1001, Culture=neutral, PublicKeyToken=bc21753e8aa334cb',然后Web应用程序重新启动.
在我在Windows日志中获得异常之前3到10秒,我确定了实体框架抛出的我的站点日志文件中的一个expcetion,因为我试图插入一个与现有项目具有相同主键的项目.该异常未在代码中处理,但由于CustomErrors设置而被asp.net处理
<customErrors mode="On" defaultRedirect="/Error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="/Error.aspx"/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)
这可能与Windows日志文件中的错误有关吗?
我在博客文章中发现了这个声明,除了主题之外,还说明了为什么应用程序池可能会崩溃
"与请求无关的线程中的未处理异常将取消该过程.即使您通过Application_Error方法设置了处理程序,也会发生这种情况."
对于某些类型的请求,我从请求线程创建了8个新线程,以便同时查询我的SOLR的8个不同内核.在其中一个核心中,我得到了一个异常,我没有在该线程中处理,这让我陷入了已发布的问题.
我希望如果他们遇到类似的错误,这可以帮助其他人.非常感谢你们的帮助.由于你的答案我改进了我的代码,我发现并修复了与问题无关的其他错误.此外,我开始更多地了解ASP.NET如何加载程序集,这是一个很大的帮助.
| 归档时间: |
|
| 查看次数: |
5580 次 |
| 最近记录: |