Решение CoreCLR для того, чтобы код знал, является ли приложение ASP.NET 5 самостоятельным или работает в IIS?

В рамках возни с ASP.NET 5 я изучал CoreCLR и не могу понять, как код может определить, работает ли он в IIS или на собственном хостинге с помощью спецификации OWIN.

Я мог бы ввести System.Diagnostics и исследовать текущий процесс (klr для собственного хоста и iisexpress или W3wp для IIS), но я хотел бы знать, есть ли способ сделать это исключительно с помощью CoreCLR. Возможно, каким-то образом проверив конвейер запросов и увидев, что IIS является его частью?


person Tem    schedule 02.04.2015    source источник


Ответы (1)


в образцах репозитория MusicStore я вижу строку, которая может быть полезна:

bool isMono = Type.GetType("Mono.Runtime") != null;

вот пример кода https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Startup.cs

person Bart Calixto    schedule 07.04.2015
comment
Type.GetType() недоступен для CoreCLR. - person Tem; 08.04.2015
comment
и как вы думаете, команда asp.net использует его? это, вероятно, в другом (новом) пакете. Проверьте код проекта. - person Bart Calixto; 08.04.2015
comment
Неважно, вы правы, хотя VS 2015 CTP 6 говорит мне об обратном перед компиляцией, если я явно не выбрал только Core в project.json. Это решение могло бы сработать, но я не могу найти правильную строку для среды выполнения CoreCLR (даже если она работает в Windows). Самое близкое, что я смог найти, это здесь. - person Tem; 08.04.2015