C# 没有名为';ASP.NET 4.6.81.0';。此模块需要.NET Framework 2.0

C# 没有名为';ASP.NET 4.6.81.0';。此模块需要.NET Framework 2.0,c#,asp.net,visual-studio,C#,Asp.net,Visual Studio,我刚刚安装了VS 2015社区,在尝试访问IIS中托管的ASP.NET应用程序(使用ASP.NET v4.0应用程序池)时,我收到了该错误消息 我刚刚下载了.NETFramework4.6离线安装程序,它识别了安装,并给了我修复或删除它的选项。我选择修复安装,但没有修复任何问题 我还有其他选择吗?请尝试以下方法: 导航到web.config并找到此块: <httpModules> <add name="ScriptModule" type="System.Web

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

我刚刚下载了.NETFramework4.6离线安装程序,它识别了安装,并给了我修复或删除它的选项。我选择修复安装,但没有修复任何问题


我还有其他选择吗?

请尝试以下方法:

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

<httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add type="WebMonitor.UnhandledExceptionModule" name="UnhandledExceptionModule"/>
    </httpModules>

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

<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>

以上错误的答案是否定的,删除了“WebMonitor.UnhandledExceptionModule”httpmodule。此模块用于捕获任何未处理的异常,并将其记录在O/S事件日志中

正如它在错误消息中所说,它缺少服务器/计算机中的事件日志源

按照以下链接中的描述创建事件日志源,然后您可以消除错误,并使用O/S事件日志记录应用程序引发的任何未经处理的异常


祝你好运

上述答案在一定程度上是正确的,但建议的解决方案并不理想

UnhandledException模块是第三方代码,其源代码位于中。它的目的是捕获未处理的异常并将它们记录到某个地方。它可能很有用,因此移除它并不是解决此问题的真正方法

此外,创建“ASP.NET 4.6.81.0”的事件日志源实际上并不是一个解决方案。它可能会帮助您克服此处显示的问题,但它很可能在下次更新.NET framework时再次出现故障

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

违规代码是:

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

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

现在发生这种情况的原因是.NET4.6取代了.NET4.5,而不是并行安装。安装已将WebEngine.dll替换为新版本4.6.81.0。.NET 4.5.2中的早期版本是4.0.30319(与CLR版本相对应)

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

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

e、 g

如果查找环境版本的字符串改为使用它,那么它将继续使用framework 4.6。当然,这并不能保证它将在以后的版本中继续工作,但是它将是一个比文件版本更安全的选择

因此,答案是更改UnhandledExceptionModule中的代码以实现此目的,重新编译它并相应地更新引用

e、 g


更新2015-DEC-04:我已修补此问题,并已将该类的新版本上载到原始codeplex站点。原始作者似乎不再活跃在该站点上,因此我不希望该补丁被合并到源代码管理中,但它是供任何人使用的

我通过运行以下命令行修复了该问题:
eventcreate/ID 1/L应用程序/T信息/SO“ASP.NET 4.6.81.0”/D“我的第一个日志”

什么是。。。?是的,这解决了问题。您是否知道那里到底发生了什么(除了无法写入事件日志之外?)是否有任何缓解方法,或者该特定模块是否有必要?顺便说一句,谢谢你在这里的投入。我认为这是真正的答案
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);
Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  34209
_sourceName = string.Format(CultureInfo.InvariantCulture, "ASP.NET {0}.{1}.{2}.0",System.Environment.Version.Major, System.Environment.Version.Minor, System.Environment.Version.Build);