C# Asp.net Web API返回非描述性错误500

C# Asp.net Web API返回非描述性错误500,c#,iis-7.5,asp.net-web-api,C#,Iis 7.5,Asp.net Web Api,在我的设置中,如果我的Web API请求出现任何问题,我会得到错误500 例如,使用这个简单的代码 public IQueryable<Article> Get(){ throw new Exception("error"); return db.Articles; //yeah i know.. unreachable, not the point } public IQueryable Get(){ 抛出新异常(“错误”); return db.Articles

在我的设置中,如果我的Web API请求出现任何问题,我会得到错误500

例如,使用这个简单的代码

public IQueryable<Article> Get(){
    throw new Exception("error");
    return db.Articles; //yeah i know.. unreachable, not the point
}
public IQueryable Get(){
抛出新异常(“错误”);
return db.Articles;//是的,我知道..不可接近,不是重点
}
我所期望的(以及在常规MVC控制器中发生的情况):

我得到的(在Web API中):

我的web配置:

<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.5">

//under webserver
<httpErrors errorMode="detailed"/>

//在Web服务器下
应用程序池正在集成模式下运行4.0。已启用32位应用程序


如何在浏览器中将错误显示到曲面?或者至少在调试过程中?

如果它是WCF Web服务,则必须将ServiceBehavior属性的IncludeExceptionDetailInFaults标志设置为true,错误才会以您想要的方式显示。

也有同样的问题

为我添加

    GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
WebApiConfig
Register
方法中提供帮助

之后,我得到了关于错误的详细信息


这里有更多关于

的信息,我看不到那个屏幕。您使用的是.NET 4.5吗?是的,我使用的是4.5和EF 5预发行版。最后的主要问题是:如何在浏览器/客户端中显示错误?我发现:您需要执行GlobalConfiguration.Configuration.IncludeErrorDetailPolicy=IncludeErrorDetailPolicy.Always;WebAPI中有一个问题可以解决这个问题:WebApiContrib的一个补丁可以做我的文章所做的:API控制器使用不同的异常过滤系统。我是在试图弄清楚为什么Elmah没有记录任何东西时发现的。本文很好地解释了如何与Elmah集成,@JimmyBogard和martinhansen似乎已经解决了实际问题。因为一年后也没有人给他正确的答案,甚至你也没有。