#c# #asp.net-core #iis #swagger #asp.net-core-3.1
#c# #asp.net-ядро #iis #развязность #asp.net-core-3.1
Вопрос:
Я пытаюсь получить свое Asp.Net Проект Core 3.1, запущенный из Visual Studio в IIS.
Я пробежал по шагам, и, похоже, он запускает мою страницу Swashbuckle Swagger, но при поиске файла swagger.json выдает ошибку. Когда я смотрю на инструменты разработчика, я вижу, что получил 404 при попытке загрузить файл swagger.json. Физический путь, с которого он пытается загрузить, таков:
C:inetpubwwwrootswaggerv1swagger.json
Но мой код находится не в inetpub, а в моей папке разработки. Что еще более странно, так это то, что я попробовал это на другой машине, и это сработало. Так что, похоже, это должно быть как-то связано с тем, как настроен IIS.
Я проверил настройки своего сайта IIS, и физический путь указан для моей папки разработки (не inetpub). И когда я нажимаю на опцию «Исследовать» в IIS, она загружает мою папку разработки.
Я скопировал swagger.json в C:inetpubwwwrootswaggerv1 и это сработало (хотя затем я столкнулся с другими ошибками).
Почему IIS пытается использовать inetpub для поиска файла swagger.json вместо моей папки разработки?
Комментарии:
1. Опубликовали ли вы asp.net основное приложение в папке inetpub или wwwroot? Возможно ли использовать относительный путь при обращении к файлу swagger.json в приложении, чтобы он выполнял поиск в inetpub или wwwroot, где asp.net найдено основное приложение.
2. @Bruce Zheng — я никогда не публиковал. Я просто пытаюсь запустить его в отладчике.
3. Без публикации Visual Studio создает виртуальный каталог asp.net основные приложения, а соответствующий физический путь находится в каталоге inetpub.