Как определить, работает ли Cassini в вашем веб-приложении? - PullRequest
1 голос
/ 15 декабря 2010

По сути, вопрос в названии - как я могу / могу ли определить, что Cassini - это то, что запускает мое приложение по сравнению с IIS? По сути, я хочу, чтобы мой код знал, что он отлаживается, поэтому, если я что-то упустил здесь, укажите это.

Ответы [ 7 ]

6 голосов
/ 27 апреля 2012
return AppDomain.CurrentDomain
    .GetAssemblies()
    .Any(
        a => a.FullName.StartsWith("WebDev.WebHost")
    );
2 голосов
/ 15 декабря 2010

Если ваша цель состоит исключительно в том, чтобы определить, отлаживаете ли вы (в этом случае конфигурация сборки, вероятно, будет отлажена), вы можете использовать что-то вроде:

#if DEBUG
    // Code compiled only if debug configuration selected (not release)
#endif

Подробнее здесь

2 голосов
/ 15 декабря 2010

Вы можете посмотреть на порт.Казини всегда работает на случайном высоком порте.IIS обычно будет 80 или 443. Если вы не настроили его по-другому.

1 голос
/ 15 декабря 2010

Если я правильно вас понимаю, вы хотите определить, находитесь ли вы в режиме отладки или нет, и, возможно, применить некоторую логику отладки?

В прошлом я достиг того, чего вы пытаетесь достичь, используя ключ, который я добавил в web.config. Когда я занимаюсь разработкой и отладкой, я устанавливаю переменную RunningFromVisualStudio = true, а когда я продвигаюсь в производство, я устанавливаю для нее значение false.

Надеюсь, это поможет.

1 голос
/ 15 декабря 2010

Следующие данные предполагают, что ваше приложение работает под управлением casini:

  • Когда вы запускаете приложение, если в вашем URL-адресе в браузере указан порт (обычно большое число - больше 1000))
  • Вы можете проверить свойства своего проекта (вкладка «Веб»), чтобы проверить, работает ли он под IIS или сервером веб-разработки (casini)
  • Будет запущен процесс для сервера казино WebServer40.exe
0 голосов
/ 15 декабря 2010

Хотя мне нравятся многие идеи здесь, я думаю, что нашел простой способ сделать это.

System.Diagnostics.Debugger.IsAttached

Это дает логическое значение в зависимости от того, есть ли отладчикк исполняемому коду.

Мне все еще нравится код #if, предоставляемый vc 74, но этот код лучше подходит для моих целей.

0 голосов
/ 15 декабря 2010

Анализ HTTP-ответа и просмотр поля сервера.Это должно сказать правду.IIS скажет, что это IIS (с номером версии) по умолчанию.

...