Попытка разместить локально службу отдыха в IIS. Все отлично работает в IIS Express, но как только я пытаюсь разместить локально в IIS, маршрутизация не работает.
msbuild /p:Configuration=Release /p:ProcessorArchitecture=x86 -r:False
Anonymous Authentication
http
к порту 8000
http://localhost:8000/
http://localhost:8000/api/HeartBeat
, я получаю 404 - Not Found
.Мой класс WebApiConfig, который устанавливает маршрут по умолчанию.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Вот контроллер
public class HeartBeatController : ApiController
{
// GET: api/HearBeat/5
public HttpResponseMessage Get()
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
Если я запускаю это в IIS Express и перехожу к тому же URL-адресу, я получаю 200. Также я пытался проверить URL-адрес в powershell с помощью Get-WebUrl
, и он показывает ProtocolError, но я понятия не имею, что и почему. И IIS Manager, похоже, ни на что не жалуется.
PS C:\Windows\system32> Get-WebURL -PSPath "IIS:\Sites\Test" | Format-list
Status : ProtocolError
ResponseUri : http://localhost:8000/
Description : Forbidden
ProtocolError
указывает, что у вас не установлена служба управления IIS, или она отключена, или заблокирована вашим брандмауэром.
Вы развернули действительный файл web.config?
Я рассмотрю пакет хостинга Windows. Я не знал, что для IIS нужно включить еще что-то; и yes отключит просмотр каталогов. Это на моей машине разработчика, и я просто пытаюсь получить что-то очень простое.
Основываясь на результатах просмотра каталога, вы сопоставляете неправильную папку с сайтом IIS. Затем ожидается 404. Прежде чем вы узнаете все подробности развертывания ASP.NET в IIS, воспользуйтесь мастером публикации VS, чтобы опубликовать двоичные файлы в файловой системе, а затем сопоставьте эту выходную папку с сайтом IIS.
Пожалуйста, включите подробный режим ошибок в web.config и сообщите нам подробное сообщение об ошибке.
Пара вещей была не в порядке.
Вы установили пакет хостинга Windows и перезагрузили IIS? Вы также захотите отключить просмотр каталогов.