Каковы преимущества (dis)использования Cassini вместо IIS?
Я обнаружил, что в некоторых случаях я могу редактировать источник во время отладки, есть ли другие преимущества использования встроенного веб-сервера Visual Studio вместо виртуального каталога в IIS?
Я использую windows XP в своей среде разработки и локальный экземпляр IIS 5. Я работаю над несколькими проектами, поэтому я использую несколько виртуальных каталогов для управления всеми различными сайтами.
есть ли недостатки?
28 ответов
встроенный веб-сервер для Visual Studio называется Cassini, и вот несколько его ограничений...
- Он может разместить только один ASP.NET приложение на порт.
- он не поддерживает HTTPS.
- Он не поддерживает проверку подлинности.
- Он отвечает только на localhost запросы.
- медленный запуск по сравнению с IIS
все предыдущие ответы-отличные ответы-вот один готча с Кассини, который может потребовать IIS на destkop.
Cassini работает в контексте разработчика, а не как пользователь IIS (IUSR_, IWAM или в WinXP x64, процесс w3wp). Это может быть немного больно, если у вас есть веб-сайт, который обращается к внешним файлам или создает временные файлы. Это наиболее очевидно, когда ваш разработчик работает в качестве администратора своего рабочего стола.
при переходе на сервер IIS, то, к чему у вас был бы доступ в Cassini, не работает одинаково. CACLing с IIS_WPG обычно все, что нужно, чтобы исправить, но если ваш разработчик не думает об этом, они быстро будут очень разочарованы их развертыванием.
встроенный сервер хорошо работает для крупных корпораций, которые не хотят предоставлять разработчикам доступ администратора на своих собственных машинах для настройки IIS.
еще один недостаток, с которым я столкнулся, - это веб-сайт с проверкой подлинности форм с помощью custom IPrincipal
/IIdentity
. Кассини переключит AppDomains
без предупреждения (или уведомления).
проверить это блоге дополнительные.Головная боль заставила меня бросить Кассини и придерживаться IIS.
веб-сервер Visual Studio менее прощает //
в путь.
он откажется обслуживать ссылку, как:
http://localhost:52632/main//images/logo.jpg
где IIS будет делать.
Это довольно неясно, но означает, что у нас есть много фиксации, чтобы избавиться от всех //
найдено.
есть ошибка в том, как встроенный сервер обрабатывает HTTPModules - есть решение, но я ненавижу вводить код, который никогда не понадобится в производстве.
для его использования (при нормальных обстоятельствах) необходимо запустить Visual Studio
Он отвечает только на localhost, поэтому вы не можете дать ссылку
http://simon-laptop:37473/app1
другу для просмотра вашего сайта в сетибольшой disavantage: это труднее получить Саша работает, потому что трафик localhost не отправляется через прокси.
Edit: используя http://ipv4.fiddler:37473
лучший способ чтобы заставить скрипача работать с ним.
Если вы 'web reference' url для веб-служб, которые находятся на встроенном веб-сервере, порт может измениться. Если вы не установили "конкретный порт", упомянутый на странице "параметры проекта->свойства".
к этому я уже привык. Я всегда устанавливаю определенный порт. Теперь, когда иногда веб-сервер падает (у меня это произошло), я просто меняю номер порта, и все хорошо. Я считаю, что перезапуск также исправит это.
встроенный сервер означает, что разработчику не нужно знать, как настроить IIS для тестирования своего сайта.
вы можете утверждать, что это недостаток, и что разработчик windows должен знать, по крайней мере, столько IIS. Или вы можете утверждать, что разработчик, который не является сисадмином, вообще не должен возиться с веб-сервером.
Cassini также не поддерживает классические страницы ASP. Это только проблема для устаревших проектов, где старые страницы ASP все еще существуют (например, наше веб-приложение на работе).
встроенный сервер не так настраивается, и он работает на нечетном Порту, поэтому, если вы рассчитываете на определенное поведение, это может быть хлопотно.
Я часто беру лучшее из обоих миров и создаю приложение в IIS и использую встроенный веб-сервер для более эффективной отладки.
Cassini-это тестовый веб-сервер light waight. Идея заключается в том, что разработчику не нужно устанавливать и настраивать IIS для тестирования своего приложения. Используйте IIS, если вы знакомы с ним, и у вас есть его настройка, и ваш ящик может передать его. Кассини не может быть заменой.
при использовании IIS в Vista или Windows 7 с включенным UAC необходимо запустить Visual Studio с правами администратора. Если вы это сделаете, вы не сможете перетащить каплю из своей оболочки в Visual Studio (даже если вы запустите экземпляр explorer.exe как администратор).
по этой причине я использую Cassini для большинства проектов.
Это старый поток, начатый 2 года назад. Я просто наткнулся на UtilDev Кассини а погуглить. Выглядит многообещающе. По крайней мере, он имеет возможность запускать одновременно несколько сайтов. Эта функция действительно полезна для меня, потому что я работаю на 2 разных сайтах и должен постоянно переключаться между ними с помощью IIS.
вот причина для третьего способа: хотя UWS Pro вероятно, ближе к IIS, чем Cassini (хотя вдохновлен Cassini и от поставщика вилки UltiDev Cassini), его основная цель-быть распространяемый вместе с ASP.NET заявки.
установите IISAdmin, и вы можете настроить отдельные сайты в IIS 5 вместо использования виртуальных каталогов.
встроенный веб-сервер немного менее надежен, чем IIS, но не требует настройки, поэтому это просто компромисс.
вы не всегда хотите, чтобы ваши проекты разработки были представлены на вашем сервере IIS (даже на локальном сервере IIS), поэтому встроенный сервер хорош для этого.
однако, если ваше приложение будет получать доступ к ресурсам за пределами нормы для веб-приложения, вы можете часто отлаживать в IIS, чтобы ваше приложение работало с ограниченными разрешениями, и вы вижу, где будут болевые точки.
мы также видели некоторые проблемы со встроенным сервером VS относительно некоторых сторонних элементов управления, которые помещают свои скрипты в папку \aspnet_client. Поскольку папка отсутствует, когда вы не работаете под IIS, элементы управления не работают. Кажется, намного проще всегда работать с IIS и избегать странных проблем.
одно отличие, которое я нашел, заключается в том, что сервер разработки обрабатывает загрузку файлов иначе, чем IIS. Вы не можете поймать ошибку, если загружаемый файл больше, чем ваш параметр Max_File_Size. Страница просто умирает и возвращает 500.
еще одно преимущество заключается в том, что он отправляет каждый запрос через файл gloabal asax, который включает все запросы на изображения и таблицы стилей. Это означает, что если у вас есть код, который делает вещи с именами файлов, такие как поиск, то вспомогательные файлы будут обработаны тоже.
также через IIS вам не нужно беспокоиться об автоматическом запоминании и установке глупого номера порта в url-адресе localhost. Это то, на что фанки напрямую полагался с Кассини...большая заноза в заднице. Кто хочет запомнить номер порта abritrary. Просто запустите чертов сайт в IIS..просто и ясно.
Если ваш проект находится в каталоге IIS, вы все равно можете редактировать код, просто зависит от того, был ли он опубликован или нет. Вы столкнетесь с проблемами so в Cassini vs IIS при отладке определенных сценариев на основе разрешений, таких как аутентификация kerberos и ntlm, а также такие проблемы, как сжатие сервера и т. д. В целом Cassini по-прежнему подходит для разработки, но убедитесь, что вы делаете обширное тестирование при публикации в IIS.