C# 使用HttpResponseMessage时,从Web API中完全没有响应
我在我的Web API上使用HttpResponseMessage,因为它大大简化了事情。我遇到的问题是,当在IIS Express下运行的VS 2017中测试代码时,我的代码执行时没有问题,但当我从Postman测试时,我完全没有得到任何响应。我想知道它是否与头和/或配置相关。这是邮递员寄回来的: 无法获得任何响应 连接到时出错。 这是正在运行的代码的一部分:C# 使用HttpResponseMessage时,从Web API中完全没有响应,c#,asp.net-web-api2,httpresponsemessage,C#,Asp.net Web Api2,Httpresponsemessage,我在我的Web API上使用HttpResponseMessage,因为它大大简化了事情。我遇到的问题是,当在IIS Express下运行的VS 2017中测试代码时,我的代码执行时没有问题,但当我从Postman测试时,我完全没有得到任何响应。我想知道它是否与头和/或配置相关。这是邮递员寄回来的: 无法获得任何响应 连接到时出错。 这是正在运行的代码的一部分: [OperationContract] [ADAuthorize(Action = "RequestUrl", Controller
[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()失败
我已经看了大量的例子,但我仍然不知道发生了什么,我遗漏了什么
contactId
可能为空。如果是这样,您的代码可能会返回一个空响应,这将导致您描述的行为。我找到了答案:基本上我混淆了MVC和Web API引用,配置中有一些WFC!我知道,当你引用旧的实验代码时就会发生这种情况。当然,我们已经吸取了教训。问题是.Net不会尖叫任何错误,它只会默默地失败。您确定请求完成后会调用RequestUrl方法吗。问题可能是将请求绑定到方法中。方法正在被调用,因为我可以逐行跟踪调试过程。然而,困扰我的是我需要创建一个请求对象的新实例,因为否则它是空的,所以它给我的印象是请求不是正在处理的实际api请求,如果这有意义的话。响应肯定不是空的。var contactId绝对为空,这就是我想要返回错误的原因。在返回之前我已经看过了,它有内容和正确的http状态码。。。一切。