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

最近把之前的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的详细内容输出的,又走弯路了…

转载于:https://www.cnblogs.com/liukemng/p/3716216.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值