Я не уверен, что это даже возможно, но я надеюсь получить подсказку, чтобы определить, выполняется ли код, который в настоящее время выполняется, в IIS Express.Мое лучшее приближение на данный момент, которое невероятно хакерское и в какой-то момент обязательно провалится / сломается:
bool IsExpress =
Request.ServerVariables["SERVER_SOFTWARE"] == "Microsoft-IIS/7.5"
&& Int32.Parse(Request.ServerVariables["INSTANCE_ID"]) > 1000000000;
Конечно, должен быть лучший путь.Моя проверка объектов Application, Server и Request не показала ничего, что могло бы обеспечить лучшее понимание.Возможно, мне просто нужно посмотреть на какой-нибудь другой объект?
Обновление:
Мне действительно любопытно, если есть способ обнаружить это - это действительно академично в этомУ меня нет острой необходимости использовать его.Оригинальный вопрос стоит.Но в духе ответа на комментарии, в частности, мне интересно ответить на критику другого вопроса / ответа на этом сайте: Как выполнить поиск на карте MIME сервера .Критика заключается в том, что опубликованный ответ не работает для IIS Express, а только для традиционных экземпляров IIS.IIS Express хранит конфигурацию MIME в XML-файле applicationhost.config, и я хотел бы обновить этот ответ, чтобы обеспечить способ возврата этой информации также для IIS Express.Конечно, я мог бы просто добавить некоторый код, который получает соответствующее значение из XML (Yay для LINQ to XML!), Но я действительно хотел бы сделать его умнее.Чтобы было ясно, мне не нужна помощь в разборе этого файла - просто что-то более элегантное в попытке определить, выполняется ли код в настоящее время в движке IIS Express.
Обновление 2:
IIS 8.0 Express Beta была выпущена на этой неделе , и это также показывает, что подход в моем вопросе хрупок и сломается.Хотя нацеливание на конкретную версию не является нарушением условий соглашения, было бы неплохо учесть это и попытаться убедиться, что код будет работать по крайней мере с известными сегодня версиями.