我在运行 IIS 7.5 的 Windows Server 2008 R2 Standard 上托管了许多 .Net Web 应用程序。加载每个应用程序都会引发以下异常:
Exception information:
Exception type: ConfigurationErrorsException
Exception message: Could not load file or assembly 'DotnetAgentHttpModule, Version=3.2.3.232, Culture=neutral, PublicKeyToken=2311bd8fc83e4f7c' or one of its dependencies. The system cannot find the file specified.
at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)
at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit, Boolean ignoreCase)
at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit)
at System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement)
at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)
at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)
at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
引用的程序集不是来自我们的应用程序,堆栈跟踪表明它是一个 Microsoft 程序集,但谷歌搜索这个特定名称没有找到结果。我在相同的服务器上托管了相同版本的相同应用程序,它们都运行良好,所以我很确定应用程序本身不是问题。我尝试回收相应的应用程序池、重新启动 IIS、删除临时 ASP.Net 文件、重新部署应用程序、重新启动并重新安装 .Net 框架。据我所知,最近服务器硬件或软件没有发生任何变化。有人能建议导致此异常的原因是什么吗?
答案1
看起来,您有自定义的 httpModule。您需要转到一切正常的服务器上的 IIS 管理器。检查模块并找到模块 DotnetAgentHttpModule: 模块示例
然后转到文件所在的路径并将该模块复制到新服务器(应用程序抛出错误的地方)。
转到IIS管理器并添加此模块