我有一个网站,运行在IIS 7.0中的集成v4.0应用程序池中。
从今天开始,在Windows事件日志中出现以下异常。这个网站已经上线1个月了,之前从未出现过这种异常。每小时的同一分钟都会出现异常,这有点奇怪。
可能的原因:
我有一个创建的库,动态加载。
_searchProvider = (ISearchProvider)Activator.CreateInstance("SolrSearchProvider", "SearchProviders.SolrSearchProvider.SolrSearchProvider").Unwrap();
那个库引用了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)
我将此故障与在与网站同一文件夹中的资源文件夹内创建大量新文件夹和新图像文件有关联。
我知道ASP.NET会在删除文件夹时重启应用程序池。这个新的资源文件夹被创建后,ASP.NET重新加载程序集是否会导致某些问题?
Mauricio Scheffer说:@Dorin:那么真正的问题是循环依赖性。我建议发布一个新问题来解决这个问题。
我解决了循环依赖的问题,但是我仍然在Windows事件日志中收到相同的错误。
首先我收到“无法找到程序集'SolrNet,Version = 0.4.0.1001,Culture = neutral,PublicKeyToken = bc21753e8aa334cb'”,然后Web应用程序正在重新启动。
在我在Windows日志中收到异常之前的3到10秒钟时间内,我在我的站点日志文件中识别出一个异常,该异常是由实体框架引发的,因为我试图插入与现有项目具有相同主键的项。该异常没有在代码中处理,但由于CustomErrors设置,它被ASP.NET处理。
<customErrors mode="On" defaultRedirect="/Error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="/Error.aspx"/>
</customErrors>
这与Windows日志文件中的错误有关吗?