【发布时间】:2012-08-31 05:24:41
【问题描述】:
我在使用 asp.net WebApi 项目时遇到了一些问题。我正在使用 rtm 位。
在我的 api 控制器中,我有这个
[HttpPut]
public Business Update([FromBody]Business business)
{
try
{
if (business.Id == Guid.Empty)
{
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
return _repository.Update(business);
}
catch (Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
log.Info(string.Format("Update Error Business"));
log.Info(ex);
throw;
}
}
我的 mvc4 应用程序我正在从应用程序的存储库中调用此 api 方法
public static HttpResponseMessage Put(string apiMethod,string baseAddress,object objectData)
{
var myHttpClient = new HttpClient
{
BaseAddress = new Uri(baseAddress)
};
myHttpClient.DefaultRequestHeaders.Authorization = new BasicAuthenticationHeaderValue("username", "Password1");
myHttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var put = myHttpClient.PutAsJsonAsync(apiMethod, objectData);
var x = put.Result;
return x;
}
我不断收到服务器 500 错误。我在 api 控制器上有一个断点,它没有被击中。如果从 3rd 方工具手动调用 api,则会调用 api。
我已经检查了所有基本的东西,但似乎无法弄清楚发生了什么。
谁有任何提示我可以用来找出问题所在?
【问题讨论】:
-
你设置
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;看真正的错误了吗? -
刚刚添加,似乎没有任何变化
-
这是一个 WebHost/SelfHost 场景吗?...如果它的 SelfHost,格式化程序写入期间的异常将没有详细信息,只是 500 内部服务器错误...关于“我有一个断点在 api 控制器上并且它没有被击中。如果从 3rd 方工具手动调用 api,则调用 api。”,可以分享您的路线和您发送的网址吗?
-
它是一个网络托管的应用程序。在同一个解决方案中只是一个单独的项目。我认为这条路线很好,因为我可以从其他方法中调用它
-
你有没有检查过 Fiddler 发送的请求是什么样子的……也许你可以得到一些新的见解……
标签: asp.net-mvc-4 asp.net-web-api