我在我的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()失败。
我看过一些疯狂的例子,我仍然无法弄清楚发生了什么,我错过了什么。
答案 0 :(得分:0)
contactId
可能为null。如果是这样,您的代码可能会返回一个空响应,这将导致您描述的行为。
答案 1 :(得分:0)
我找到了答案:基本上我混淆了MVC和Web API引用,配置中有一些WFC!我知道,当你引用旧的实验代码时会发生这种情况。经验教训肯定。问题是.Net不会尖叫任何错误,它会默默地失败。