• .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的详细内容输出的,又走弯路了…

  • 相关阅读:
    C指针QQ群问答
    英语音标与汉语拼音
    jquery插件validation
    ORACLE纵向表转换为横向表写法
    安装vagrant&virtualBox
    tp5 上传视频到七牛云
    解决VirtualBox错误:“FATAL:No bootable medium found!”
    PyCharm切换Python版本
    七牛云的使用
    一起谈.NET技术,C#中int和System.Int32理解总结 狼人:
  • 原文地址:https://www.cnblogs.com/liukemng/p/3716216.html
Copyright © 2020-2023  润新知