使用HttpResponseMessage时,Web API绝对没有响应

时间:2018-05-15 16:57:33

标签: c# asp.net-web-api2 httpresponsemessage

我在我的Web API上使用 HttpResponseMessage ,因为它大大简化了事情。我遇到的问题是,在测试运行在IIS Express下的VS 2017中的代码时,我的代码执行没有问题,但是当我从Postman测试时,我完全没有回应。我想知道它是否与标题和/或配置有关。这是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()失败

我看过一些疯狂的例子,我仍然无法弄清楚发生了什么,我错过了什么。

2 个答案:

答案 0 :(得分:0)

contactId

可能为null。如果是这样,您的代码可能会返回一个空响应,这将导致您描述的行为。

答案 1 :(得分:0)

我找到了答案:基本上我混淆了MVC和Web API引用,配置中有一些WFC!我知道,当你引用旧的实验代码时会发生这种情况。经验教训肯定。问题是.Net不会尖叫任何错误,它会默默地失败。