2017-01-13 2 views
0

Я следил за учебником Microsoft по Web API 2 здесь Web API 2 tutorial.Как веб-API отвечает без размещения?

Я пытался запустить его и получил ошибку 403.14. После некоторых исследований выяснилось, что вам просто нужно построить его и вызвать его функции из браузера, как указано здесь: Answer to Dealing with 403.14 error.

У меня было впечатление, что веб-API должен быть размещен для того, чтобы его вызывали, если я его не запускаю, как браузер может вызвать его функции?

ответ

1

Когда вы создаете новый проект веб-API, Visual Studio создаст новое приложение ASP.NET и добавит специальные шаблоны веб-API. Приложение ASP.NET может быть размещено на встроенном сервере разработки Visual Studio (также известном как IIS Express). Поэтому, когда вы нажмете F5, вы в основном запустите этот веб-сервер, на котором будет размещаться приложение, и он будет прослушивать какой-то номер порта.

Вы можете увидеть значок под управлением сервера разработчиков в Windows, задачи панели:

enter image description here

+0

Он не строит на F5, это вещь, но если вы строите его, по какой-то причине да IIS принимает его без его запуска. – MilesMorales

+0

Так что в этом случае, возможно, он размещен в IIS, а не в IIS Express. Посмотрите на настройки проекта - вкладку «Веб», которая будет содержать свойства хостинга. –

+0

Используется IIS Express. Мне просто интересно, почему, когда я не запускаю приложение, хотя я все еще могу назвать его функции. – MilesMorales

0

Web API должен быть размещен и размещена в IIS Express, а Дарина уже сказал, в тот момент, когда вы запускаете ПродуктыApp проект. Подробнее о IISExpress можно прочитать здесь [1].

Однако проблема связана с тем, что после запуска проекта браузер открывает путь по умолчанию (http://localhost:47503/ в случае с другим портом на вашем компьютере), который не отображается.

Что вам нужно сделать: запустить приложение в Visual Studio, но затем добавить к этому пути по умолчанию, который открывает в браузере фактический путь, существующий в проекте (например:/api/products). Таким образом, ваш результирующий URL-адрес будет выглядеть примерно так: http://localhost:47503/api/products. Это было также указано в примере, который вы упомянули [2], но, возможно, это было недостаточно ясно.

[1] https://www.iis.net/learn/extensions/introduction-to-iis-express/iis-express-overview

[2] https://forums.asp.net/t/1961303.aspx?HTTP%20Error%20403%2014%20Forbidden%20

+0

Он возвращает json-файл, однако почему, если я не запускаю приложение, я все равно могу назвать его функции, что было моим главным вопросом. – MilesMorales

Смежные вопросы