没有名为“ASP.NET 4.6.81.0”的EventLog源。 此模块需要.NET Framework 2.0

我刚刚安装了VS 2015社区,在尝试访问IIS中托管的ASP.NET应用程序(使用ASP.NET v4.0应用程序池)时,我收到了该错误消息。

我刚刚下载了.NET Framework 4.6脱机安装程序,它识别出安装并给了我修复或删除它的选项。 我选择修复安装,但它没有修复任何东西。

我还有其他选择吗?

试试这个:

导航到您的web.config并找到此块:

    

将以上内容更改为以下内容:

    

我通过运行此命令行修复了该问题:eventcreate / ID 1 / L APPLICATION / T INFORMATION / SO“ASP.NET 4.6.81.0”/ D“我的第一个日志”

上面的答案是正确的,但建议的修复不是很理想。

UnhandledExcepton模块是第三方代码,其源代码在CodePlex中 。 它的目的是捕获未处理的exception并将其记录在某处。 它可能是有用的,因此删除它不是这个问题的真正答案。

此外,创建“ASP.NET 4.6.81.0”的事件日志源并不是一个真正的修复。 它可能会让您解决此处显示的问题,但在下次更新.NET框架时,它很可能会再次出现问题。

如果查看源代码,可以看到该模块正在使用.NET框架附带的程序集版本(WebEngine.dll)来查找要使用的事件日志源的名称。 该文件可以在运行时目录中找到,这取决于框架版本和“位数”。 例如

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\WebEngine.dll 

违规代码是:

 string webenginePath = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "webengine.dll"); 

 FileVersionInfo ver = FileVersionInfo.GetVersionInfo(webenginePath); sourceName = string.Format(CultureInfo.InvariantCulture, "ASP.NET {0}.{1}.{2}.0", ver.FileMajorPart, ver.FileMinorPart, ver.FileBuildPart); 

如果此日志源不存在,则抛出错误。

现在发生这种情况的原因是.NET 4.6是.NET 4.5的替代品,而不是并行安装。 安装已将WebEngine.dll替换为新版本4.6.81.0。 .NET 4.5.2中的先前版本是4.0.30319(与CLR版本对应)。

AP.NET 4.6.81.0 ”没有事件日志源,因此出错。

UnhandledException模块的原始作者应该使用返回CLR版本的代码,而不是依赖于文件的版本。

例如

System.Environment.Version

 Major Minor Build Revision ----- ----- ----- -------- 4 0 30319 34209 

如果查找环境版本的字符串使用了它,那么它将继续使用框架4.6。 当然,这并不能保证它会继续在更高版本中运行,但它比文件版本更安全。

因此,答案是更改UnhandledExceptionModule中的代码来执行此操作,重新编译它并相应地更新引用。

例如

 _sourceName = string.Format(CultureInfo.InvariantCulture, "ASP.NET {0}.{1}.{2}.0",System.Environment.Version.Major, System.Environment.Version.Minor, System.Environment.Version.Build); 

更新2015-DEC-04:我修补了这个问题,并将新版本的违规类上传到原始的codeplex网站。 原作者似乎不再在网站上活跃,因此我不希望补丁被合并到源控件中,但是任何人都可以使用它。 请参阅描述问题和链接补丁的问题

上述错误的答案不是,删除“WebMonitor.UnhandledExceptionModule”httpmodule。 此模块用于捕获任何未处理的exception并将其记录在O / S EventLog中。

正如它在错误消息中所说,它缺少服务器/机器中的EventLog源。

按照以下链接中的描述创建EventLog源,然后您可以消除错误,并使用O / S事件日志记录从您的应用程序抛出的任何未处理的exception。

如何修复EventLog源丢失错误

祝好运!!