.NET WebAPI 正确抛出错误详细信息_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > .NET WebAPI 正确抛出错误详细信息

.NET WebAPI 正确抛出错误详细信息

 2014/5/8 16:16:33  Miss ? When...  博客园  我要评论(0)
  • 摘要:最近把之前的WebAPI项目发布到服务器上,数据库由SQLServer2008EXPRESS改为SQLServer2000,但在分页查询时服务器抛出了“500错误”,但却看不到错误的详细信息,按照之前的经验把配置文件的customErrors打开依然看不到详细信息,由于项目是发布在服务器上,没有办法进行调试,且服务器是windows20003,页没有办法进行远程调试,写try…catch…捕捉action中的错误并抛出依然获取不到详细信息
  • 标签:.net API Web net 正确 错误

最近把之前的WebAPI项目发布到服务器上,数据库由SQL Server2008 EXPRESS改为SQL Server2000,但在分页查询时服务器抛出了“500错误”,但却看不到错误的详细信息,按照之前的经验把配置文件的customErrors打开依然看不到详细信息,由于项目是发布在服务器上,没有办法进行调试,且服务器是windows20003,页没有办法进行远程调试,写try…catch…捕捉action中的错误并抛出依然获取不到详细信息,得不到错误详细信息就没有方向对错误进行修改,然后就在网上搜索解决办法,发现WebAPI出现错误,只会抛出500,并不包含详细信息,只有抛出HttpResponseException,才能得到错误的详细信息,这样就好办了,代码如下:

try
{
    ...
}
catch (Exception e) {
    //在webapi中要想抛出异常必须这样抛出,否则之抛出一个默认500的异常
    var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError)
    {
        Content = new StringContent(e.ToString()),
        ReasonPhrase = "error"
    };
    throw new HttpResponseException(resp); 
}

最后根据错误详细信息发现是新版NHibernate不支持SQL Server2000的分页查询了,又装了一个SQL Server2005错误解决。

就在写这篇记录的时候刚想到其实用不着这么麻烦,可以直接把Exception的详细内容输出的,又走弯路了…

发表评论
用户名: 匿名