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

时间:2017-07-13 19:20:14

标签: c# asp.net .net iis version

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

遇到服务器错误时,会显示错误页面。 在页面底部我们有这些信息:

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1637.0 

我已经阅读了不同的帖子并尝试了多种方法,以便以编程方式获得该值,但没有成功。

这就是我的尝试:

1)

Console.WriteLine(Environment.Version.ToString());

结果:

4.0.30319.42000

2)以编程方式阅读:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET

结果:

4.0.30319.0

3)以编程方式阅读:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

结果:

4.6.01586

您可以确认这些值中没有一个映射错误页面中显示的ASP.NET版本。

所以,我有两个问题:

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

2)我遇到了一个.NET4.6显然已安装但ASP.NET版本为4.0.30319的情况(怀疑是这导致失败)。 有没有办法只升级ASP.NET?这有什么意义吗?

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

1 个答案:

答案 0 :(得分:0)

我能回答你的第一个问题。

您可以通过以下方式以编程方式接收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;
}