【发布时间】:2016-03-10 09:17:18
【问题描述】:
我按照这里https://github.com/rdingwall/elmah-contrib-webapi的描述安装了elmah
现在我正在尝试访问日志记录,但我一直保持 getter 错误 404 错误。 我使用正确的网址吗?还是缺少一些配置吗?
我的 webapi 运行如下: http://localhost/MagnusREST/api/Customers/054036?frmt=xml
我的 application_start 看起来像这样:
protected void Application_Start()
{
GlobalConfiguration.Configuration.Filters.Add(new ElmahHandleErrorApiAttribute()); //added for elmah
AreaRegistration.RegisterAllAreas();
UnityConfig.RegisterComponents();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
我的 webapi 配置保持不变,如下所示:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("frmt", "json",
new MediaTypeHeaderValue("application/json")));
config.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("frmt", "xml",
new MediaTypeHeaderValue("application/xml")));
//config.Formatters.Clear();
JsonMediaTypeFormatter oldformatter = config.Formatters.Where(f => f is JsonMediaTypeFormatter).FirstOrDefault() as JsonMediaTypeFormatter;
if (oldformatter != null) config.Formatters.Remove(oldformatter);
config.Formatters.Insert(0,new PartialJsonMediaTypeFormatter() { IgnoreCase = true });
}
}
通过http://localhost/MagnusREST/api/elmah.axd 访问日志不起作用,通过http://localhost/MagnusREST/elmah.axd 不起作用,http://localhost/elmah.axd 也不起作用。
我做错了什么?
这是在 Visual Studio 2013 中运行的。
【问题讨论】:
-
感谢您的投票,但是如果您围绕这个主题进行谷歌搜索,则信息完全分散且不完整。所以我认为这是一个可行的问题。我试图在下面的答案中完整。
标签: asp.net-web-api elmah