Jim*_*m T 20 asp.net iis iis-7
挑战在于确定是否以可靠和正确的方式在IIS7中启用了ASP.NET.
在这种情况下,通过以下方式完成启用/禁用:
Server Manager ->
Roles ->
Web Server (IIS) ->
Remove Role Services ->
Remove ASP.NET
Run Code Online (Sandbox Code Playgroud)
确定这个的自然位置应该在applicationHost.config文件中.但是,在启用或禁用ASP.NET的情况下,我们仍然可以使用"ManagedEngine"模块,并且我们仍然在标记中包含isapi过滤器记录.
我现在能找到的最好的方法是检查<isapiCgiRestriction>标签是否包含aspnet_isapi.dll,或者ASPNET跟踪提供程序是否可用.
但是,这些并没有直接检测到ASP.NET配置的存在,只是可以想象由用户重新配置的副作用.
如果可能的话,我宁愿通过检查IIS配置/设置而不是操作系统本身来做到这一点,尽管如果我们可以保证在使用IIS7时这种技术始终可用,则可以接受服务器上的角色和服务.
更新
谢谢你的回复.清楚地说明我想要做什么,我将服务器配置中各种位置的设置拉到一个(只读)视图中,以显示用户需要配置什么才能使软件工作.
我需要引入的一个设置就是这个:

用红色突出显示的那个.
我不需要操纵设置,只需重现它.我想看看用户在将IIS角色添加到服务器时是否检查了ASP.NET框,因为在这个示例中他们显然没有.
我想通过在IIS中查看可靠的东西而不是枚举角色服务来做到这一点,因为我不想在我不需要的检查上添加任何特定于平台的依赖项.我不知道是否有可能在没有角色/服务基础架构的服务器上安装IIS7,但在优先考虑中,我宁愿不担心它.我还有一堆用于在IIS周围进行清理的库.
但是,我也很难找到如何枚举角色/服务,所以如果有一个解决方案涉及这样做,它肯定会有用,并且比检查拥有ASPNET跟踪提供程序的副作用要好得多躺在身边.
不幸的是,如果你不检查ASP.NET按钮,你仍然可以在IIS applicationHost.config文件中获取ManagedEngine模块,因此它不是一个可靠的检查.您还可以将ASP.NET映射为isapi过滤器,因此检查它们是不够的.在安装ASP.NET但已被删除的情况下,这些问题尤其成问题.
看起来最好的解决方案是检查角色服务.但是,关于此的API信息看起来非常罕见,因此请求帮助.
Car*_*res 16
知道他们是否检查过的绝对方法是搜索以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components
Run Code Online (Sandbox Code Playgroud)
在那里你会看到两个值设置为1,ASPNET和NetFxEnvironment和NetFxExtensibility.此注册表项是IIS安装程序密钥,其中包含IIS中已启用的所有组件.
| 归档时间: |
|
| 查看次数: |
38645 次 |
| 最近记录: |