Я тестировал ASP. NET Web API в локальной среде с IIS Express и на другом сервере с полным IIS. В обоих местах токен api и post api работает нормально. Я использую пространство имен System.Web.Http, как предложено. Однако после развертывания на сервере общего хостинга я получаю сообщение об ошибке ниже:
API токена:
"error": "unsupported_grant_type"
Post API (метод с [HttpPost] системы .Web.Http):
"Message": "The requested resource does not support http method 'GET'."
Код Post API:
[AllowAnonymous]
[HttpPost]
[Route("api/test")]
public IHttpActionResult Test([FromBody] Employee emp)
{
...
}
Я использую маршрутизацию по умолчанию, доступную в WebApiConfig.cs, как показано ниже. Не уверен, имеет ли это значение, поскольку я уже украшаю метод API с помощью Route:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Я попытался выполнить развертывание с помощью метода FileSystem (загрузка файлов на сервер и настройка приложения в IIS) и метода Web Deploy для прямого развертывания API в сервер. Я использую Postman для тестирования и использую тот же метод Http (Post) и тело, которые я использую при локальном тестировании.
В чем может быть разница между локальным IIS Express / IIS и сервером IIS общего хостинга, который вызывает эту проблему