Как программно определить, работает ли мое приложение в интегрированном режиме IIS 7.0 изнутри приложения? ASP.NET страница


Как правило, мы должны иметь контроль над нашими пулами приложений и иметь возможность форсировать режим управляемого конвейера. В моем случае у меня нет контроля, и я хотел бы реализовать код за кодом немного по-другому, основываясь на режиме управляемого конвейера (Integrated vs Classic). Я просто не знаю, как это обнаружить. Есть ли простой способ сделать это из кода за страницей?

2 7

2 ответа:

Посмотрите на ApplicationPool.ManagedPipelineMode и ServerManager.Странице Свойства. Таким образом, вы можете изучить ApplicationPool.ManagedPipelineMode текущего AppPool примерно как Этот пример do, но сделать это для ApplicationPool вашего приложения, а не для домена приложения по умолчанию, как в Примере do. В ServerManager.ApplicationPools содержатся все пулы, включая ваш.

Я нашел способ в .NET 4.0 сделать это без ссылки на сборку Microsoft.Web.Administration. Класс System.Web.HttpRuntime обладает булевым свойством UsingIntegratedPipeline.