#c# #rest #asp.net-web-api
#c# #rest #asp.net-web-api
Вопрос:
Итак, у меня есть веб-API C # MVC и веб-приложение, представляющее собой проект «все в одном». Я создавал что-то похожее на это в прошлом, но веб-приложение и веб-API были двумя разными проектами с двумя разными URL.
Например:
Веб-приложение будет размещено на mywebsite.com/webapp
Веб-API будет размещен на mywebsite.com/webapi
Каждый раз, когда я хотел вызвать веб-API из веб-приложения, все, что мне нужно было сделать, это отправить Ajax-запрос, используя URL mywebsite.com/webapi/api/getdata
Однако в моем текущем проекте это «все в одном». Поэтому при тестировании я бы просто вызвал /api/getdata
, и это отлично работало бы в Visual Studio debug. Но когда я развертываю этот сайт для тестирования и фактически размещаю его, все мои вызовы API сталкиваются с ошибками HTTP 404.
Итак, как мне вызвать веб-API, если у веб-API нет собственного отдельного URL?
Комментарии:
1. Как вы генерируете URL-адреса в своих вызовах ajax?
2. При тестировании это так: xmlhttp.open(«GET», ‘/api/Users/getUser? Имя пользователя=’ username, false);
3. Вы размещаете его в папке? Или корневой каталог вашего доменного имени?
4. Он находится в папке. Это то, чего мне не хватало. Я настроил его на вызов /ProjectFolder /api/Users /getUser, и это сработало. 🙂
Ответ №1:
В IIS я преобразовал папку в приложение, а затем убедился, что переключил вызовы из
mywebsite.com/api/getdata
Для
mywebsite.com/myproject/api/getdata
и сейчас он работает.
Спасибо @mxmissile за указание на это.