有没有可靠的方法可以编程地检查在IIS 7.5上是否注册了ASP.NET 4.0?我需要在安装程序中作为先决条件进行测试,在ASP.NET应用程序安装开始之前。
如果ASP.NET 4.0未在IIS上注册,稍后在安装过程中仅安装的应用程序将无法运行,并返回500内部服务器错误(解决问题已经太迟)。相反,我希望在任何安装步骤开始之前显示一些警告(和提示如何解决问题)。但是还没有找到可靠的解决方案。
据我所知,读取注册表条目有时可能不正确。因此,现在我运行aspnet_regiis.exe -lv
来列出版本(正如这里建议的那样),并解析输出。但是,即使.NET没有正确注册,我的测试也会成功(错误地),因为输出包含版本4.0:
2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
(Win7 32位)
在这种情况下,运行aspnet_regiis.exe -ir
可以修复它。
这类似于这个问题,但我需要以编程方式进行测试。
你有任何想法或经验吗?