Получение абсолютно никакого ответа от веб-API при использовании HttpResponseMessage

Я использую HttpResponseMessage в своем веб-API, потому что это значительно упрощает работу. Проблема, с которой я сталкиваюсь, заключается в том, что при тестировании кода в VS 2017, работающем под IIS Express, мой код выполняется без проблем, но я абсолютно ничего не получаю в ответ, когда тестирую Postman. Мне интересно, связано ли это с заголовками и/или конфигурацией. Вот что Почтальон отправляет обратно:

Не удалось получить ответ. Произошла ошибка при подключении к http://localhost:12345/Url/RequestUrl< /а>.

Это часть кода, который работает:

[OperationContract]
[ADAuthorize(Action = "RequestUrl", Controller = "Url")]
[HttpPost]
public HttpResponseMessage RequestUrl(Stream inputServiceRequestParameters)
{
    Request = new HttpRequestMessage();
    Configuration = new HttpConfiguration();

    try
    {
        // Retrieve and place JSON parameters into object.
        var serviceRequestParameters = JsonFunctions.GetServiceRequestParameters(inputServiceRequestParameters);
        // Retrieve member GUID from LDAP.
        var contactId = LdapFunctions.GetMemberCrmGuid(serviceRequestParameters.MemberNumber);

        // Member information not found in LDAP, so return without processing.
        if (contactId == null)
        {
            var response = Request.CreateResponse(HttpStatusCode.InternalServerError,
                JsonFunctions.BuildErrorResponse("", Constants.ValidationMessage.MEMBER_NOT_IN_LDAP));

            response.Content = new StringContent(JsonFunctions.BuildErrorResponse("", Constants.ValidationMessage.MEMBER_NOT_IN_LDAP));
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");

            return response;
        }

[остальная часть класса продолжает после этого...]

Весь этот код работает прекрасно, но ничего не возвращается. Даже Fiddler жалуется, что ReadResponse() не удалось.

Я просмотрел безумное количество примеров и до сих пор не могу понять, что происходит, чего мне не хватает.


person kerc    schedule 15.05.2018    source источник
comment
Вы уверены, что метод RequestUrl вызывается после выполнения запроса. Проблема может заключаться в привязке запроса к методу.   -  person Giorgi Chkhikvadze    schedule 15.05.2018
comment
Метод вызывается, определенно, так как я могу отследить его через отладку, строка за строкой. Однако меня беспокоит то, что мне нужно создать новый экземпляр объекта запроса, потому что в противном случае он будет нулевым, поэтому у меня создается впечатление, что запрос не является фактическим обрабатываемым запросом API, если это имеет смысл.   -  person kerc    schedule 15.05.2018


Ответы (2)


contactId

может быть нулевым. Если это так, ваш код, вероятно, вернет нулевой ответ, что приведет к описанному вами поведению.

person Steve Perkins    schedule 15.05.2018
comment
Ответ определенно не нулевой. var contactId определенно равен нулю, поэтому я хочу вернуть ошибку. Я просмотрел его непосредственно перед возвратом, и в нем есть содержимое и правильный код состояния http... все. - person kerc; 15.05.2018

Я нашел ответ: в основном у меня была путаница ссылок MVC и Web API с некоторым WFC в конфигурации! Я знаю, что это происходит, когда вы ссылаетесь на старый экспериментальный код. Урок точно усвоен. Дело в том, что .Net не будет кричать об ошибках, он просто молча выйдет из строя.

person kerc    schedule 16.05.2018