Я немного оглянулся и не наткнулся на что-либо похожее на проблему, с которой я сталкиваюсь, поэтому я подумал, что я брошу ее сюда и посмотрю, что, если что-то будет.Запрос WebAPI вызывает ошибку 404 ... по такому же запросу
У меня есть контроллер и способ.
public class BoothAPIController : ITApiControllerBase
{
[HttpGet]
public HttpResponseMessage GetActiveAssetNumbersLike([FromUri] String id)
{
HttpResponseMessage ret;
// ... do some processing
return ret;
}
}
Маршруты устанавливаются в Global.asax
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "CustomApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BoothWithDateAPI",
routeTemplate: "api/{controller}/{boothID}/{year}/{month}/{day}");
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
}
И эти два запроса выполнить безупречно ...
http://localhost:52211/api/BoothAPI/GetActiveAssetNumbersLike/PR
http://localhost:52211/api/BoothAPI/GetActiveAssetNumbersLike/PRN0
Это один однако ... возвращает ошибку 404. ..
http://localhost:52211/api/BoothAPI/GetActiveAssetNumbersLike/PRN
Заголовок для не удалось запрос выглядит ...
Cache-Control →private
Content-Length →2879
Content-Type →text/html; charset=utf-8
Date →Mon, 29 Aug 2016 12:53:08 GMT
Server →Microsoft-IIS/8.0
X-AspNet-Version →4.0.30319
X-Powered-By →ASP.NET
X-SourceFiles →= [string]
Хотя успешные запросы выглядят как
Cache-Control →no-cache
Content-Length →7731
Content-Type →application/json; charset=utf-8
Date →Mon, 29 Aug 2016 13:13:43 GMT
Expires →-1
Pragma →no-cache
Server →Microsoft-IIS/8.0
X-AspNet-Version →4.0.30319
X-Powered-By →ASP.NET
X-SourceFiles → [string]
(пожимает) Я не знаю ... Я в полной растерянности, почему один изменение параметра делает разница.
Я вижу разницу в Content-Type. Когда он терпит неудачу, он отправляет текст/html. Как вы отправляете эти запросы? С помощью приложения или через Postman? – jpgrassi
Также, почему вы устанавливаете маршруты в Global.asax? У вас нет файла WebApiConfig в папке App_Start? – jpgrassi
Запрос идентичен и отправляется из Postman, только строка параметров отличается. Что касается Global.asax ... на данный момент удобство. У меня не так много настроек, поэтому не нужно было его разрывать. По мере того, как приложение растет, мы можем немного его реорганизовать. –