Web API работает нормально на локальном сервере, но возвращает 501 на сервере? - PullRequest
0 голосов
/ 31 августа 2018

Я использую WebAPI2. Это мой контроллер Класс:

public class ValuesController : ApiController
{     
    [HttpPost]
    public HttpResponseMessage LoginMethod()
    {      
     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "This is a simple message");
     return response;
    }
}

Я могу проверить этот метод локально с почтальона, и он дает мне правильный вывод, но на сервере он не работает. Этот метод находится внутри ValuesController, и я звоню таким образом (по локальной сети)

http://localhost:49476/api/values/LoginMethod/

и работает без проблем. На сервере я так звоню

http://example.com/api/values/LoginMethod/

выдает ошибку с кодом состояния 500 internal server error:

 {
  "Message": "An error has occurred.",
  "ExceptionMessage": "Value cannot be null.\r\nParameter name: nameValueCollection",
  "ExceptionType": "System.ArgumentNullException",
  "StackTrace": "   at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()"
 }

Это мой WebAPIConfig файл:

public static void Register(HttpConfiguration config)
{
    config.MapHttpAttributeRoutes();
    config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
    );
}

Пожалуйста, подскажите, где я не так делаю? Любая помощь приветствуется. Спасибо.

...