如何以编程方式检测我的应用程序是否在 ASP.NET 页面中以 IIS 7.0 集成模式运行
一般来说,我们应该控制我们的 AppPools 并能够强制使用托管管道模式。就我而言,我没有控制权,并且希望根据托管管道模式(集成与经典)稍微不同地实现代码背后的代码。我只是不知道如何检测到这一点。有没有一种简单的方法可以从代码隐藏页面中执行此操作?
Generally we should have control of our AppPools and be able to force the Managed Pipeline Mode. In my case I don't have control and would like to implement the code behind code a little differently based on the Managed Pipeline Mode (Integrated vs Classic). I just don't know how to detect this. Is there a simple way to do it from within the code behind page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在 .NET 4.0 中找到了一种无需引用
Microsoft.Web.Administration
程序集即可执行此操作的方法。System.Web.HttpRuntime
类具有UsingIntegratedPipeline
布尔属性。I found a way in .NET 4.0 to do this without referencing the
Microsoft.Web.Administration
assembly. TheSystem.Web.HttpRuntime
class has theUsingIntegratedPipeline
boolean property.查看 ApplicationPool.ManagedPipelineMode 和ServerManager.ApplicationPools 属性。因此,您可以检查当前 AppPool 的
ApplicationPool.ManagedPipelineMode
,例如 这个示例可以执行此操作,但是是针对应用程序的 ApplicationPool 执行此操作,而不是像示例那样针对默认应用程序域执行此操作。ServerManager.ApplicationPools
包含所有池,包括您的池。Look at ApplicationPool.ManagedPipelineMode and ServerManager.ApplicationPools Properties. So you can examine
ApplicationPool.ManagedPipelineMode
of the current AppPool about like this example do, but to do this for ApplicationPool of your application and not for the default application domain like the example do. TheServerManager.ApplicationPools
contain all pools including yours one.