2011-05-11 79 views
42

如何检查安装在我系统上的ASP.NET的版本?如何检查系统上加载的ASP.NET版本?

+3

编程或者只是你有什么在你的Windows安装? – Jimmy 2011-05-11 18:48:51

+2

我相信这可能是重复http://stackoverflow.com/questions/5161529/how-to-know-which-version-of-asp-net-it-is – aceinthehole 2011-05-11 18:52:50

+2

@aceinthehole不,这个问题是关于哪个一个项目的版本被编码。这是关于在机器上安装哪个版本。 – 2016-01-20 18:20:21

回答

5

查看c:\ windows \ Microsoft.NET \ Framework,你会看到各种以“v”开头的文件夹,指示安装的.NET版本。

+3

我安装了4.5版本,该版本没有显示在Framework目录下。所以你的解决方案是不正确的。 – AndroidDev 2013-04-18 17:30:53

+1

如果存在,是否检查c:\ windows \ Microsoft.NET \ FFramework64 – Rich 2014-01-30 18:49:51

29

您可以使用

<% 
Response.Write("Version: " + System.Environment.Version.ToString()); 
%> 

这将让当前运行的版本。您可以检查注册表在所有已安装的版本:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ NET Framework安装\ NDP

+0

太棒了。非常感谢你们这样快速的回应。堆在流岩石。 – vanaja 2011-05-11 19:28:39

+0

但Keyboardp的一个问题。我应该在哪里运行您发送的命令<%Response.Write ........%> – vanaja 2011-05-11 19:29:53

+0

您可以创建一个新的ASPX页面并将其复制/粘贴到您的页面中。如果你想从代码隐藏中做到这一点,那么只需使用' Response.Write(“Version:”+ System.Environment.Version.ToString());'不需要'<% %>' – keyboardP 2011-05-11 19:32:34

30

你可以看到是哪个版本被执行时加载谷歌浏览器的页面+开发人员工具(预装)或Firefox + Firebug(附加组件)。

我使用谷歌浏览器:

  1. 打开Chrome,并使用按Ctrl ++打开开发人员工具。
  2. 转至“网络”选项卡
  3. 点击底部的“保留日志在导航”
  4. 加载任何网页上
  5. 点击响应报头的小按钮

它看起来是这样的:

enter image description here

+5

这并不显示v4.0和v4.5之间的差异,因为它们都在4.0.30319的相同X-AspNet版本下运行。您需要检查注册表或执行Response.Write,如@KeyboardP回答。 – 2015-02-25 07:51:48

+4

这种方法可以很容易的找到'.NET CLR Framework'版本,而不是'ASP.NET'版本...... – Serge 2016-01-19 13:56:07

+0

你可以很容易地隐藏“X-Asp-Net-Version”头文件http://www.admin-enclave.com/en/articles/windows/285-windows-hardening-disable-the-x-aspnet-version-header.html),所以这个解决方案不会总是有效。 – BastianW 2016-09-28 19:59:59

4

我有同样的问题,找到一个方法来检查是否ASP.NET 4。 5在服务器上。由于v4.5已替换为v4.0,因此如果您查看c:\ windows \ Microsoft.NET \ Framework,则不会看到v4.5文件夹。实际上,有一种简单的方法可以查看机器中安装的版本。在Windows Server 2008或Windows 7下,只需进入控制面板 - >程序和功能,如果已安装,您将找到“Microsoft .NET Framework 4.5”。

2

或者,您可以在网页和Page_Load类型中创建一个按钮;

Trace.IsEnabled = True 

而在按钮单击事件类型;

Response.Write(Trace) 

这将打开所有的跟踪信息,你会发现在“X-ASPNET版”中的“响应头集”你的ASP.NET版本。

+0

你可以很容易地隐藏“X-Asp-Net-Version”头文件,就像书面[这里]一样(http://www.admin-enclave.com/en/articles/windows/285-windows-hardening-disable-the -x-aspnet-version-header.html),所以这个解决方案不会总是有效。 – BastianW 2016-09-28 20:01:10

0

这是一些代码,将返回安装。NET细节:

<%@ Page Language="VB" Debug="true" %> 
<%@ Import namespace="System" %> 
<%@ Import namespace="System.IO" %> 
<% 
Dim cmnNETver, cmnNETdiv, aspNETver, aspNETdiv As Object 
Dim winOSver, cmnNETfix, aspNETfil(2), aspNETtxt(2), aspNETpth(2), aspNETfix(2) As String 

winOSver = Environment.OSVersion.ToString 
cmnNETver = Environment.Version.ToString 
cmnNETdiv = cmnNETver.Split(".") 
cmnNETfix = "v" & cmnNETdiv(0) & "." & cmnNETdiv(1) & "." & cmnNETdiv(2) 

For filndx As Integer = 0 To 2 
    aspNETfil(0) = "ngen.exe" 
    aspNETfil(1) = "clr.dll" 
    aspNETfil(2) = "KernelBase.dll" 

    If filndx = 2 
    aspNETpth(filndx) = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), aspNETfil(filndx)) 
    Else 
    aspNETpth(filndx) = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Microsoft.NET\Framework64", cmnNETfix, aspNETfil(filndx)) 
    End If 

    If File.Exists(aspNETpth(filndx)) Then 
    aspNETver = Diagnostics.FileVersionInfo.GetVersionInfo(aspNETpth(filndx)) 
    aspNETtxt(filndx) = aspNETver.FileVersion.ToString 
    aspNETdiv = aspNETtxt(filndx).Split(" ") 
    aspNETfix(filndx) = aspNETdiv(0) 
    Else 
    aspNETfix(filndx) = "Path not found... No version found..." 
    End If 
Next 

Response.Write("Common MS.NET Version (raw): " & cmnNETver & "<br>") 
Response.Write("Common MS.NET path: " & cmnNETfix & "<br>") 
Response.Write("Microsoft.NET full path: " & aspNETpth(0) & "<br>") 
Response.Write("Microsoft.NET Version (raw): " & aspNETtxt(0) & "<br>") 
Response.Write("<b>Microsoft.NET Version: " & aspNETfix(0) & "</b><br>") 
Response.Write("ASP.NET full path: " & aspNETpth(1) & "<br>") 
Response.Write("ASP.NET Version (raw): " & aspNETtxt(1) & "<br>") 
Response.Write("<b>ASP.NET Version: " & aspNETfix(1) & "</b><br>") 
Response.Write("OS Version (system): " & winOSver & "<br>") 
Response.Write("OS Version full path: " & aspNETpth(2) & "<br>") 
Response.Write("OS Version (raw): " & aspNETtxt(2) & "<br>") 
Response.Write("<b>OS Version: " & aspNETfix(2) & "</b><br>") 
%> 

下面是新的输出,更干净的代码,更多的输出:

Common MS.NET Version (raw): 4.0.30319.42000 
Common MS.NET path: v4.0.30319 
Microsoft.NET full path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe 
Microsoft.NET Version (raw): 4.6.1586.0 built by: NETFXREL2 
Microsoft.NET Version: 4.6.1586.0 
ASP.NET full path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
ASP.NET Version (raw): 4.7.2110.0 built by: NET47REL1LAST 
ASP.NET Version: 4.7.2110.0 
OS Version (system): Microsoft Windows NT 10.0.14393.0 
OS Version full path: C:\Windows\system32\KernelBase.dll 
OS Version (raw): 10.0.14393.1715 (rs1_release_inmarket.170906-1810) 
OS Version: 10.0.14393.1715