C# 以编程方式获取ASP.NET版本

C# 以编程方式获取ASP.NET版本,c#,asp.net,.net,iis,version,C#,Asp.net,.net,Iis,Version,在一些客户端机器中,我们遇到了一些与.NET Framework相关的不兼容问题 遇到服务器错误时,将显示错误页面。 在页面底部,我们有以下信息: Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1637.0 我读过不同的帖子,并尝试了多种方法,以编程方式获得该值,但没有成功 这就是我所尝试的: (一) 结果: 4.0.30319.42000 4.0.30319.0

在一些客户端机器中,我们遇到了一些与.NET Framework相关的不兼容问题

遇到服务器错误时,将显示错误页面。 在页面底部,我们有以下信息:

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1637.0 
我读过不同的帖子,并尝试了多种方法,以编程方式获得该值,但没有成功

这就是我所尝试的:

(一)

结果:

4.0.30319.42000
4.0.30319.0
4.6.01586
2) 按程序阅读:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
结果:

4.0.30319.42000
4.0.30319.0
4.6.01586
3) 按程序阅读:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
结果:

4.0.30319.42000
4.0.30319.0
4.6.01586
正如您可以确认的那样,这些值都没有映射到错误页面中显示的ASP.NET版本

因此,我有两个问题:

1) 如何以编程方式获取ASP.NET版本

2) 我曾经遇到过这样一个案例:显然安装了.NET4.6,但ASP.NET版本是4.0.30319(人们怀疑这是导致失败的原因)。 有没有办法只升级ASP.NET?这有什么意义吗


很抱歉,我没有足够的声誉来添加图像。

我可以回答您的第一个问题

您可以通过以下方式以编程方式接收ASP.NET版本:

var netPath = 
System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory();
var systemWebPath = Path.Combine(netPath, "System.Web.dll");
if (File.Exists(systemWebPath))
{                
     FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(systemWebPath);
     string version = fileVersionInfo.ProductVersion;
}

不执行
typeof(Page).Assembly.GetName().Version//ASP.NET版本
不工作?它给出了执行程序集的版本,在我的例子中是1.0.0.0。(这是一个控制台应用程序)