Шаблон по умолчанию Базовое веб-приложение ASP.NET не запускается «Автономно» - PullRequest
0 голосов
/ 04 сентября 2018

Я создал основное веб-приложение ASP.NET (Asp.NET Core 2.0, веб-приложение) с Visual Studio 2017 15.7.5.
Кроме того, я настроил «профиль публикации» с помощью метода публикации «Файловая система», Конфигурация: «Релиз», Целевая платформа: «netcoreapp2.0», Режим развертывания: «Автономный», Время выполнения цели: «win-x86».

Проект был создан без проблем (я не вносил никаких изменений) и без проблем работает в режиме отладки с IIS Express.
Если я разверну его, будет создан файл «app» .exe, я могу его запустить и увидеть консоль:

Хостинг-среда: Производство
Путь к корню содержимого: «путь» \ publish
Сейчас слушаю http://localhost:5000

Но, если я получаю доступ к http://localhost:5000 из браузера, я вижу сообщения об ошибках в консоли, такие как:

fail: Запрос соответствует нескольким действиям, что приводит к неоднозначности. Соответствующие действия: Страница: / Ошибка индекса: Необработанное исключение имеет произошло: найдено несколько действий.
Следующие действия соответствуют данные маршрута и были выполнены все ограничения:
Страница: / Указатель
Страница: / index

При этом браузер показывает ошибку http 404 (не найдена) или 500 (ошибка сервера).

Так что (для меня) кажется, что самохостинг работает в основном, так как "веб-сервер" может быть достигнут, но что-то идет не так в развертывании ...

Что мне нужно сделать, чтобы заставить себя работать?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Кажется, я нашел проблему:
При развертывании дополнительные файлы {AppName} .PrecompiledViews.dll и {AppName} .PrecompiledViews.pdb были созданы VS2017 и скопированы в каталог публикации, что вызвало проблему (несколько определений).
После того как я удалил файлы, самохост теперь работает ...
Я не знаю, почему файлы были развернуты - если я повторно развертываю приложение, кажется, что файлы не генерируются снова - так что, возможно, это проблема (только) с первым развертыванием ...

0 голосов
/ 04 сентября 2018

существует проблема в промежуточном программном обеспечении маршрутизации, которое использует только токены контроллера и действия для сопоставления / выполнения действия, поэтому, если у вас есть несколько действий в контроллере с тем же именем - это вызовет неоднозначное исключение.

Чтобы решить эту проблему, вы можете начать использовать [HttpGet], [HttpPost] и т. Д. Или [Route] атрибуты

...