一个可以使用
aspnet_regiis.exe
在命令行中向 IIS 注册版本(前提是您先 cd 到正确的目录),这一切都很好
但是有没有办法找出哪些版本已经在 IIS 中注册?
如,我想注册一个版本,但我不确定它是否已经注册。我该怎么说?
您可以运行以下检查来验证注册版本:
aspnet_regiis.exe -lv
已注册的框架应返回已注册 aspnet_isapi.dll 位置的行
appcmd.exe 列出 apppool /managedRuntimeVersion:v4.0
这将列出指定运行时版本的所有已安装应用程序池,因此如果它返回 none - 运行时可能未注册。
appcmd.exe 列表配置-section:system.webServer/isapiFilters
应该返回已注册的 isapi 过滤器列表,aspnet_filter.dll 就是其中之一,驻留在框架文件夹中,例如“c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll”
另一种可能的解决方案是使用 .net 代码扫描可用的应用程序池并获取它们的运行时版本:
using Microsoft.Web.Administration;
...
public static bool IsAspNetRegistered(string v = "v4.0")
{
using (var mgr = new ServerManager())
{
return mgr.ApplicationPools.Any(pool => pool.ManagedRuntimeVersion == v);
}
}