У меня возникла сложная ситуация, когда у меня есть приложение angular2, которое отлично развертывается на сервере, но при обращении к серверу WebApi я получаю 404 ошибки в ответе. Устройства WebApi работают нормально в локальной среде, но на реальном сервере он терпит неудачу.Ошибка 404 при вызове WebApi
<!--Redirect selected traffic to index -->
<rule name="Index Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="/api/" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
Выше правило, которое я поместил в файле Web.config, где сервер WebAPI будет вызван только, если есть «/ API /» в URL. У меня есть анонимное действие в контроллере, которое я ожидал бы вызывать при работе через почтальон, но я просто получаю ошибку 404 в ответ.
[AllowAnonymous]
[HttpGet]
[Route("api/dashboard/getanon")]
public IHttpActionResult GetTaskItemsAnon()
{
var identity = (ClaimsIdentity)User.Identity;
return this.Content(HttpStatusCode.OK, new { response = "Hello: Anon" });
}
Веб-камера размещается под субдоменом внутри сети. Все файлы с угловым2 загружены правильно. Я показываю экран входа, но не могу установить связь с контроллерами WebApi. Любая помощь будет оценена thanx.
ОБНОВЛЕНИЕ: Ниже в файл WebApiConfig.cs
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 }
);
}
Вы можете разместить снимок Почтальон как вы делаете вызов API? Кроме того, можете ли вы попробовать удалить атрибут [AllowAnonymous] из своего метода действий и попробовать? –
Я удалил [AllowAnonymous], и ничего не изменилось. С Postman я просто использую обычный GET-запрос без параметров для соответствующего URL-адреса. Я знаю, что это правильно в Postman, потому что в среде localhost Postman успешно достигает действия WebApi в контроллере. – Rossco
Можете ли вы опубликовать код в своем RouteConfig.cs? –