ASP.NET MVC на IIS 6 - подстановочном отображении - входящий запрос не соответствует никакому маршруту

Руководство существует следующим образом:

  1. Ваш домен не зависит от общих библиотек. Это будет препятствовать развитию (и изменениям) в одном домене, потому что это нарушит поведение другого домена.
  2. Помогает нам убедиться, что мы не дублируем деловое поведение в разных доменах. Это очень важно.
  3. Ваш домен не зависит от инфраструктуры. У меня есть сильное подозрение, что это было гораздо важнее в то время, когда люди привыкли помещать логику домена в хранимые процедуры, но это все еще весьма актуально сегодня, потому что она обеспечивает изоляцию логики и ее независимость от хранилищ, хранилищ и т. Д. легко тестируемый.

Учитывая вышеизложенное, можно понять, что некоторый обмен идеален. Действительно, вы уже делитесь некоторыми вещами: базовыми структурами языка и библиотеками базовых классов. Совместное использование некоторых вспомогательных библиотек абсолютно нормально, а в некоторых случаях это очень помогает. При этом вам следует быть очень осторожным:

  1. Совместное использование бизнес-логики в форме разделяемых вспомогательных библиотек нарушает первое правило, изложенное выше, поскольку бизнес-логика может меняться по мере изменения нашего понимания нашего домена.
  2. Совместное использование предметно-ориентированных структур данных нарушает первое и второе правило сверху. Специфичные для домена структуры данных могут изменяться по мере того, как меняется наше понимание домена, и наличие нескольких доменов в зависимости от них будет препятствовать этому процессу Это также нарушает второе правило, потому что специфичные для предметной области структуры данных неявно ведут себя с ними.

Конкретно в вашей ситуации это действительно зависит от того, что представляет собой шаблон ошибки:

  • Является ли он похожим на некоторую структуру данных, которая гарантирует, что исключения содержат некоторый базовый набор информации, который полезен в отладке и не включает какие-либо доменные структуры данных? Если так, то, вероятно, все в порядке.
  • Принимает ли он доменные структуры данных? Тогда я бы сказал, что это не хорошо
  • Содержит ли оно какое-либо доменное поведение для интерпретации некоторых доменных данных и заполнения шаблона? Тогда снова нет.
8
задан splattne 9 November 2008 в 14:06
поделиться

3 ответа

Хорошо, получил его работа.

Проблема состояла в том, что я использовал msbuild автоматизацию для пакета файлы, которые я должен был развернуть, и я пропускал global.asax.

Таким образом, похоже, не развертывается ли global.asax на сайте затем, ни один из маршрутов не поднят трубку. Это означает, что удар корня веб-сайта правильно приводит к ошибке 'Входящий запрос, не соответствует никакому маршруту'. и любые другие запросы больше не направляются до Ваших классов контроллера, таким образом приведите к 404.

HTH.

8
ответ дан 5 December 2019 в 06:10
поделиться

Unfortunatly IIS 6 нужно расширение файла для отображения запроса на правильный обработчик, что означает, что необходимо будет использовать суффикс .mvc на названиях контроллера, такой как / {контроллер} .mvc/{действие}

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

SimplyRestfulRouteHandler.BuildRoutes(routes);

routes.MapRoute(
      "Default",
      "{controller}.mvc/{action}/{id}",
      new { controller = "Home", action = "Index", id = "" }
);

Однако пути вокруг этого в зависимости от Вашего уровня управления на сервере IIS 6. См. следующие страницы для получения дополнительной информации

1
ответ дан 5 December 2019 в 06:10
поделиться

Вот то, что я сделал для получения URL без расширения, работающих с IIS 6 и ASP.NET Бета 1 MVC.

  • Создайте ASP.NET по умолчанию Бета проект MVC и скомпилируйте его.
  • Создайте новый веб-сайт IIS, указывающий на каталог приложения.
  • В свойствах IIS для веб-сайта нажмите вкладку HomeDirectory.
  • Нажмите кнопку "Configuration...". На вкладке "Mappings" нажмите "Insert..."
  • Рядом с "Подстановочными картами приложения" маркируют In текстовым полем, вводят в "c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll"
  • Снимите флажок, маркировал "Verify that file exists", Нажимают "OK"
  • Перейдите к/, размещают Его, работал!

Вы не должны должны быть изменять web.config вообще. Просто необходимо отобразить все запросы на IIS к Isapi dll ASP.NET иначе, ASP.NET никогда не будет получать те запросы.

18
ответ дан 5 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: