2015-04-02 6 views
2

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

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

ответ

0

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

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

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

+0

'Type.GetType()' недоступен для CoreCLR. – Tem

+0

и как вы думаете, что команда asp.net использует его? это, вероятно, на другом (новом) пакете. Оформить код проекта. –

+0

Nevermind, вы правы, хотя VS 2015 CTP 6 говорит мне иначе, прежде чем компиляция, если только я явно не выделил Core в project.json. Это решение может работать, но я не могу найти правильную строку для среды выполнения CoreCLR (даже если она работает в Windows). Самое близкое, что я мог найти, - это [здесь] (http://aakinshin.net/ru/blog/dotnet/jit-version-determining-in-runtime/). – Tem