Различия в поведении между IIS и сервером веб-разработки ASP.Net? - PullRequest
5 голосов
/ 22 марта 2010

Во время разработки я обычно тестирую приложения ASP.Net, используя сервер веб-разработки (иногда называемый Cassini).Иногда, когда я публикую в реальной среде IIS, я замечаю, что приложение ведет себя по-разному.

Итак, каковы различия между поведением рабочих серверов IIS и сервера веб-разработки ASP.Net?Я не имею в виду различия в наборах функций (ясно, что IIS имеет много функций, которых нет в WDS), но различия в способах работы с ASP.Net.

Кстати: есть несколько различий, отмеченных вответы на этот вопрос , но я уверен, что должно быть больше.

Ответы [ 2 ]

4 голосов
/ 22 марта 2010

Некоторые вещи, которые я выбрал здесь и в других местах:

  • Контекст безопасности, в котором соответствующие серверы запускают приложения ASP.NET, отличается.Для сервера Dev это учетная запись текущего пользователя.Для IIS это контекст специального пользователя (ASPNET или NETWORK SERVICES), который, как правило, имеет ограниченные привилегии.

  • Для веб-сайта Сервер разработки обрабатывает статические файлы (изображения и стильлисты и т. д.) для авторизации ASP.NET.Однако IIS обслуживает статические файлы без использования правил авторизации.

  • Сервер разработки не поддерживает SMTP, поэтому вы не можете отправлять электронные письма непосредственно с этого сервера.

  • Сервер разработки не поддерживает HTTPS.

  • Существует разница в том, как два сервера обрабатывают пути, содержащие "//".Сообщается, что сервер Dev более простителен.

  • Сервер Dev случайно выбирает порт, а не стандартный порт HTTP 80.

0 голосов
/ 22 марта 2010

Некоторые различия могут быть:

  • Вы не можете использовать виртуальные каталоги при работе с cassini. Это может привести к неожиданному поведению при первом развертывании из-за отсутствия прав доступа к папке. (например, у вас есть каталог / image / на вашем локальном компьютере, но в IIS / image / это виртуальный каталог, указывающий на другое)
  • Некоторые сторонние сборки (например, ComponenArt Web DLL) вызывают проблемы с конкретными проблемами порта. Это лучшее развивать с IIS, чтобы минимизировать проблемы совместимости при развертывании.
  • Уровень доверия целевой IIS может быть ниже, чем ваши настройки разработки, это может привести к сбоям в работе, в зависимости от того, что вы делаете с IIS, как чтение Uptime.
...