zoukankan      html  css  js  c++  java
  • .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的详细内容输出的,又走弯路了…

  • 相关阅读:
    ES7 cat API的小结
    zabbix5.0 使用elasticsearch7.6按日期索引存储历史数据
    Archlinux爬坑指南
    ArchLinux安装常用软件QQ、TIM、微信等常用软件(三)
    ArcnLinux安装KDE桌面环境(二)
    ArchLinux安装步骤(一)
    DDD领域驱动及落地方案
    Text Classification with Keras
    Mattermost Server安装及配置AD/LADP
    使用队列问题
  • 原文地址:https://www.cnblogs.com/liukemng/p/3716216.html
Copyright © 2011-2022 走看看