В моем веб-проекте ASP.NET у меня есть контроллер API, в котором есть метод post, подобный этому.
[RoutePrefix("api/token")]
public class TokenController : ApiController
{
[HttpPost]
[Route("")]
public IHttpActionResult CustomToken ([FromBody] UserDto userDto)
{
.....
return Ok("success");
}
}
Теперь в Visual Studio этот контроллер API работает нормально, возвращает «успех» с кодом состояния 200, но когда я публикую его в IIS, это создает исключение 500 внутренних серверов.Я использовал ведение журнала здесь, и во всем коде внутри метода POST исключение не создается.
Обновление: в файле запуска проекта API я использовал следующую конфигурацию:
private void ConfigureWebApi(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.EnableCors();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var jsonFormatter =
config.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver
= new CamelCasePropertyNamesContractResolver();
}