所以我有一个不断崩溃的应用程序,它没有留下任何应用程序日志。当我最终去查看该服务器的事件查看器(服务器2003框)时,我发现了这个错误(偶数源是ASP.NET 4.0.30319.0)
发生了未处理的异常,并且该过程已终止。
申请ID:/ LM / W3SVC / 2053196604 / Root
流程ID:24428
异常:System.IO.FileLoadException
消息:无法加载文件或程序集 ' Microsoft.Practices.EnterpriseLibrary.Validation,Version = 5.0.505.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)
StackTrace:服务器堆栈跟踪:at System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly, StackCrawlMarkHandle stackMark,Boolean loadTypeFromPartialName, ObjectHandleOnStack类型)at System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly, StackCrawlMark&安培; stackMark,Boolean loadTypeFromPartialName)at System.RuntimeType.GetType(String typeName,Boolean throwOnError, Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark& stackMark) 在System.Type.GetType(String typeName)at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator.AddValidationExtension() 在 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator..ctor(IUnityContainer 容器) Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.CreateDefaultContainer(IConfigurationSource configurationSource)at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.SetCurrentContainerIfNotSet() 在Microsoft.Practices.EnterpriseLibrary.Logging.Logger.get_Writer()
在Apriva.WebApi.Shared.Logging.DefaultLogWriter.Log(对象消息, TraceEventType严重性,LogEntry& entry,String类,HttpContext 上下文) Apriva.WebApi.Shared.Logging.DefaultLogWriter.Info(对象消息, 字符串类别,HttpContext context)at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr的 md,Object [] args,Object server,Int32 methodPtr,Boolean fExecuteInContext,Object []& outArgs)at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(即时聊天 msg,IMessageSink replySink)在[0]处重新抛出异常:at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(消息 reqMsg,Boolean bProxyCase)at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData&安培; msgData)at Apriva.WebApi.Shared.Logging.Logger.LogDelegate.EndInvoke(IAsyncResult的 结果)在 Apriva.WebApi.Shared.Logging.Logger.LogAsyncComplete(IAsyncResult ar) 在 System.Runtime.Remoting.Messaging.AsyncResult.SyncProcessMessage(即时聊天 msg)at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(即时聊天 msg,IMessageSink replySink)at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.DoAsyncCall()
在 System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(对象 o)at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(对象 System.Threading.ExecutionContext.Run(ExecutionContext。) executionContext,ContextCallback回调,对象状态,布尔值 ignoreSyncCtx)at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在System.Threading.ThreadPoolWorkQueue.Dispatch()at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()有关详细信息,请参阅
上的“帮助和支持中心”
当我检查任务管理器中的进程时,该PID不存在。我认为这是因为它是一个w3wp进程。所以我进入命令提示符并运行iisapp.vbs并返回一个具有不同PID的进程。
该错误似乎意味着当找到的版本是v5.0.505.0并且我的项目有大量对企业库的引用时,有一个不同版本的企业库的配置引用用于验证,没有请参阅验证包。
所以我的问题是 - 有没有人对我接下来要去哪里有所了解?我试图使用PID来至少看看哪个应用程序导致了错误,但这似乎并没有让我到任何地方。
答案 0 :(得分:0)
<强>分析:强> 从堆栈跟踪清楚,参考链是: Apriva.WebApi.Shared.Logging.DefaultLogWriter =&gt; Microsoft.Practices.EnterpriseLibrary.Logging.Logger =&gt; Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer =&gt; Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator。 方法&#34; AddValidationExtension&#34;类型为Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator需要来自&#39; Microsoft.Practices.EnterpriseLibrary.Validation程序集的签名
可能的步骤找出根本原因:
最有可能你应该通过上述步骤得到罪魁祸首。 我还建议检查程序集缓存并检查Microsoft.Practices.EnterpriseLibrary.Validation程序集的签名,如果它与Version = 5.0.505.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35&#39;
匹配