确定ASP.Net是否正确注册

有没有人有一个Bulletproof方法(在C#理想!)确定ASP.Net是否正确注册在您的计算机上?

我为ASP.Net应用程序编写安装程序,我需要知道是否应该运行aspnet_regiis。

目前我们总是运行aspnet_regiis – 我确保ASP.Net注册正确,但这不是所希望的,因为它提示重新启动所有的应用程序池。

在网上有几个有用的网页(例如http://www.codeproject.com/KB/cs/iisdetection.aspx),但正如在那篇文章中的评论,注册表报告ASP.Net注册,但是仍然需要运行aspnet_regiis来配置IIS。用户’JonB’发布的东西看起来像它应该适用于IIS6(和IIS7启用IIS6兼容性),但我仍然需要为IIS 7编写单独的检测代码与IIS6兼容模式禁用。

所以有谁破解了这个螺母已经?如果是这样,请让我们知道,因为它将是一个节省时间。否则,我将尝试和端口C解决方案到C#为IIS6和IIS7我将看看检查< isapiCgiRestriction> applicationHosts.config的部分

<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />

最后一个问题…

有谁知道在Windows 7中的东西是否相同/不同?

解决方法

首先我试试运行aspnet_regiis -lv。这应该给你一个输出:
1.1.4322.0      Valid           C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
2.0.50727.0     Valid           c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

您可以轻松地解析以验证目标版本是否已安装并且有效。如果不是,你必须去aspnet_regiis -i路由。

此外,鉴于您可以在C#中执行此检查,您可以向ASP.NET应用程序添加一个测试页。在通常认为成功安装之后,在该测试页面上执行HttpWebRequest。页面本身可以像空白页一样简单,并且像运行安装的自检(文件/文件夹权限,数据库配置等)一样复杂,如果一切正常,则只返回HTTP 200。任何超时或错误都表示安装不正确。然后,可选择删除测试页。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...