0
我試圖學習和理解Web API 2中的全局異常處理。當我通過下面的代碼步驟時,我想我會在Handle方法中打斷點,但是我不'噸。全局處理Web API中的異常2
我錯過了什麼?
這裏是我做了什麼:我在Visual Studio 2013中創建一個新的Web API項目更新4.在我的根,我創建了下面的類 - 名爲GlobalExceptionHandler.cs,看起來像這樣:
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.ExceptionHandling;
public class GlobalExceptionHandler : ExceptionHandler
{
public override void Handle(ExceptionHandlerContext context)
{
// --> Break Point in the next line <--
string str1 = context.Exception.Message;
}
}
這是我Startup.cs是什麼樣子:
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.ExceptionHandling;
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
}
}
當我嘗試生成在我的web API方法例外,我期待打在GlobalExceptionHandler handle方法,但我不是。
public IHttpActionResult Get()
{
throw new HttpResponseException(HttpStatusCode.BadRequest);
return Ok("I should not get here because of exception");
}