问题
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?
回答1:
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. The ServerManager.ApplicationPools
contain all pools including yours one.
回答2:
I found a way in .NET 4.0 to do this without referencing the Microsoft.Web.Administration
assembly. The System.Web.HttpRuntime
class has the UsingIntegratedPipeline
boolean property.
来源:https://stackoverflow.com/questions/3579770/how-to-programatically-detect-if-my-application-is-running-in-iis-7-0-integrated