如何以编程方式检测我的应用程序是不是在 ASP.NET 页面内以 IIS 7.0 集成模式运行

Posted

技术标签:

【中文标题】如何以编程方式检测我的应用程序是不是在 ASP.NET 页面内以 IIS 7.0 集成模式运行【英文标题】:How to programatically detect if my application is running in IIS 7.0 Integrated mode from within an ASP.NET page如何以编程方式检测我的应用程序是否在 ASP.NET 页面内以 IIS 7.0 集成模式运行 【发布时间】:2010-08-26 21:41:20 【问题描述】:

通常我们应该控制我们的 AppPools 并能够强制使用托管管道模式。在我的情况下,我没有控制权,并且希望基于托管管道模式(集成与经典)稍微不同地实现代码背后的代码。我只是不知道如何检测到这一点。有没有一种简单的方法可以在页面后面的代码中做到这一点?

【问题讨论】:

【参考方案1】:

我在 .NET 4.0 中找到了一种无需引用 Microsoft.Web.Administration 程序集即可执行此操作的方法。 System.Web.HttpRuntime 类具有 UsingIntegratedPipeline 布尔属性。

【讨论】:

【参考方案2】:

查看ApplicationPool.ManagedPipelineMode 和ServerManager.ApplicationPools 属性。因此,您可以像 this 示例那样检查当前 AppPool 的 ApplicationPool.ManagedPipelineMode,但要对应用程序的 ApplicationPool 执行此操作,而不是像示例那样对默认应用程序域执行此操作。 ServerManager.ApplicationPools 包含所有池,包括您的池。

【讨论】:

以上是关于如何以编程方式检测我的应用程序是不是在 ASP.NET 页面内以 IIS 7.0 集成模式运行的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式检测应用程序是不是正在设备或模拟器上运行

如何以编程方式检测Windows Phone 8.1操作系统版本?

如何以编程方式检测 android 手机是不是处于静音模式

iOS WatchOS5 - 如何以编程方式检测 Apple Watch 是不是在特定时间间隔戴在手腕上(佩戴)?

如何以编程方式在android中检测设备电源按钮按下两次

如何以编程方式检测游戏中心?