在 WebException 中收到时如何捕获 IIS 500 服务器错误详细信息?

发布于 2024-12-02 07:32:38 字数 444 浏览 0 评论 0原文

我的代码使用 HttpWebRequest 请求 .ASP 页面 (asp 3.0),并在 URL 中包含一些参数。该 ASP 页面将通过从数据库获取一些数据来生成 PDF。由于 ASP 代码中的错误,当我尝试从请求获取响应时,我收到了带有 IIS 500 服务器错误的 WebException。这很好,但是异常消息除了发生 500 错误之外并没有真正说明任何内容。

如果我在 IE 中复制粘贴我请求的 URL,我确实会得到一些详细信息,因为我禁用了友好错误,并且 IIS 配置为向用户发送真正的错误文本。

“技术信息(针对支持人员)

错误类型: ADODB.记录集(0x800A0CC1) 在集合中找不到与请求的名称或序号相对应的项目。 “

我已经对异常进行了快速观察并访问了所有属性,但没有一个包含此数据。

有没有办法在 WebException 上获取此信息?

谢谢。

I have code that uses an HttpWebRequest to request a .ASP page (asp 3.0), with some parameters in the URL. That ASP page will generate a PDF by getting some data from a database. Due to error in the ASP code, I'm getting a WebException with IIS's 500 server error when I try to get the response from the request. And that's fine, but the exception's message doesn't really say anything other than 500 error occurred.

If I copy paste the URL that I'm requesting in IE, I do get some details since I have friendly errors disable and IIS configured to send the real error text to the user.

"Technical Information (for support personnel)

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
"

I've done a QuickWatch on the Exception and visited all of the properties, but not one contained this data.

Is there a way to get this information on the WebException?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半﹌身腐败 2024-12-09 07:32:38

有没有办法在 WebException 上获取此信息?

是的,您可以阅读响应正文:

try
{
    ...
}
catch (WebException ex)
{
    using (var stream = ex.Response.GetResponseStream())
    using (var reader = new StreamReader(stream))
    {
        string text = reader.ReadToEnd();
        // text will contain the response from the server
    }
}

Is there a way to get this information on the WebException?

Yes, you can read the response body:

try
{
    ...
}
catch (WebException ex)
{
    using (var stream = ex.Response.GetResponseStream())
    using (var reader = new StreamReader(stream))
    {
        string text = reader.ReadToEnd();
        // text will contain the response from the server
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文