如何获取/跟踪 ASP.NET 传出响应文本

2023-11-30

我的服务器似乎有时会向网络客户端返回错误的 html

我在 VS 2012 中使用 asp.net 4。在 IIS Express 上进行调试。

为了调试这个问题,我想跟踪asp.net发送的html

in the Global_asax_PreRequestHandlerExecute我可以访问响应代码和状态,但似乎找不到正文 html

我尝试阅读OutputStream像这样:

Dim ms = New MemoryStream
CurContext.Response.OutputStream.CopyTo(ms)
Dim sr = New StreamReader(ms)
Dim rtext = sr.ReadToEnd

但这会引发NotSupportedException Stream does not support reading.

有任何想法吗?

多谢

EDIT

我现在确实测试了这个

我的页面上有一个具有以下属性的标签

<asp:label id="l" runat="server" Font-Bold="true" Font-Size="X-Large" BackColor="Pink"/>

当在浏览器中显示时,它显示得很好,如下所示:

<span id="C1_FormView1_l" style="background-color:Pink;font-size:X-Large;font-weight:bold;">Processed</span>

但是当使用网络客户端下载时我得到

<span id="C1_FormView1_l"><b><font size="6">Processed</font></b></span>

为什么背景色丢失了?顺便说一句,为什么它不使用更现代的style属性而不是添加b and font

如果我可以读取 ResponseStream,我至少会知道它在哪里丢失,即使我现在不知道。

非常感谢

附:如果 .net 4.5 对此更好,那么我可能会考虑更改目标框架


您可以通过覆盖页面/站点主机上的渲染来获取 HTML(并修改它)。

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter(ms))
                {
                    HtmlTextWriter tw = new HtmlTextWriter(sw);
                    base.Render(tw);
                    tw.Flush();
                    ms.Position = 0;
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(ms))
                    {
                        string yourHTML = sr.ReadToEnd();
                        // do stuff with yourHTML
                        Response.Write(yourHTML);
                        sr.Close();
                        tw.Dispose();
                    }
                }
            }
        }

in vb

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        Using ms As New System.IO.MemoryStream()
            Using sw As New System.IO.StreamWriter(ms)
                Dim tw As HtmlTextWriter = New HtmlTextWriter(sw)
                MyBase.Render(tw)
                tw.Flush()
                ms.Position = 0
                Using sr As New System.IO.StreamReader(ms)
                    Dim yourHTML As String = sr.ReadToEnd()
                    'do stuff with yourHTML'
                    Response.Write(yourHTML)
                    sr.Close()
                    tw.Dispose()

                End Using
            End Using
        End Using
    End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取/跟踪 ASP.NET 传出响应文本 的相关文章

随机推荐

  • fatfree SQL 错误处理

    如果出于某种原因 使用映射器创建条目时出现错误 我会收到错误消息 我想做一个自定义通知并像这样优雅地失败 try request gt save catch Exception e this gt utils gt errorNotify
  • 我的应用程序中的 Nougat OS 中显示的 Webview 空白页面

    我在我的应用程序中调用了 CCAvenue 支付网关集成 直到它正常工作 但是当我将设备操作系统 Marshmallow 更新到 Nougat 时 Webview 页面显示空白屏幕 logcat 中也没有找到错误日志 我还在所有其他低于 N
  • 从 XSD 生成类

    您正在 SOA 世界中进行 Web 服务的契约优先开发 编辑 XSD 文件后 从 XSD 文件自动 重新 生成 net 类的最佳方法是什么 xsd exe 将为您生成新的类 根据 Visual Studio 的设置方式 将 xsd exe
  • 启用/禁用代理应用程序在 IE 中无法正常工作

    我在这里遇到了一个非常奇怪的情况 我编写了一个应用程序 除其他外 它可以将连接的代理从打开切换到关闭 反之亦然 这是通过更改注册表中的值来完成的 public void SetUpProxy string proxy bool enable
  • 通过javascript检测ipad/iphone webview

    有没有办法用 JavaScript 检测网站是否在 iPad 的 Safari 内或应用程序 WebView 内运行 这使用了以下组合window navigator userAgent and window navigator stand
  • 数字签名 亚马逊应用商店

    我在亚马逊应用商店中读到了这样的内容 这是什么意思 我是否必须明确地做某事 或者亚马逊自己签名 我不清楚 你能告诉我吗 我可以为我的应用程序应用签名吗 所有应用程序都必须使用证书进行数字签名 应用于您的应用程序的默认签名是亚马逊提供的证书
  • 在 Web 配置中添加 serverRuntime 标记会导致 500.19 错误

    我刚刚从另一台笔记本电脑上的 TFS 下载了 asp net 项目 但无法运行它 我已经缩小了问题范围 这与我的 webconfig 设置有关 设置是
  • 如何以不区分大小写的方式从列表中删除单词?

    我有一个名为words包含可能为大写或小写或它们的某种组合的单词 然后我有另一个列表称为stopwords其中仅包含小写单词 现在我想浏览一下其中的每个单词stopwords并从中删除该单词的所有实例words以不区分大小写的方式 但我不知
  • PHP 日期“最后一个工作日”输出错误的月份

    我正在尝试获取last weekday使用下面的代码显示当前月份的数据 我期望它的行为就像所有其他运算符一样last friday of并输出本月最后一个工作日 而是输出上个月的最后一个工作日 我知道我可以通过使用来纠正这个问题modify
  • 使用线程执行shell命令c++

    是否可以通过创建线程来执行 shell 命令 即不使用 popen system 或任何 fork exec 变体 为什么或者为什么不 为了提供更多上下文 我正在运行一个多线程程序 其中一个线程需要执行 shell 脚本 目前它使用 pop
  • CDataColumn 的“值”内的条件语句

    有谁知道如何在 CGridView 列字段中显示条件值 我在数据库中有一个性别 M 或 F 的条目 在 CGridView 中 但是我想分别显示 男 和 女 而不是 M 或 F 欢迎任何想法 我发现虽然不允许使用完整的 if else 语法
  • 在 MVC3 中将 ListBox 与模型绑定

    我的模型是 public class SiteConfig public SiteConfig public int IdSiteConfig get set public string Name get set public byte S
  • 在审核表单中添加自定义字段

    我期待在审核表单中创建自定义字段 电子邮件 ID 和一个下拉列表 我已经尝试过这个 但没有保存数据 仅保存字段 应用程序 代码 核心 法师 评论 模型 Mysql4 Review php protected function afterSa
  • 如何使用与用户定义函数同名的 MATLAB 工具箱函数

    我遇到了问题findpeaks函数 该函数位于信号处理工具箱中 并且该程序还有它的另一个版本 用户定义函数 我需要调用信号处理工具箱中的 on 而不是用户定义的函数 而且由于多种原因我无法重命名用户定义的函数 谁能帮我调用工具箱函数 MAT
  • 解析正数和负数的字符串,Javascript

    所以我正在研究 d3 中制作的标签云示例 http www jasondavies com wordcloud http 3A 2F 2Fsearch twitter com 2Fsearch json 3Frpp 3D100 26q 3D
  • 使用 jQuery 动态创建链接

    我正在尝试使用 jQuery 在 blockquote 元素中创建一个链接 我现在正处于这个阶段 var pullQuote span pull quote each function var this this hrefLink http
  • 如何找到 Redshift 中访问次数最多的表?

    我们正在将实时数据传输到 Redshift 瓶颈是没有可以并发运行的表加载 目前 我们每 15 分钟运行超过 1000 个负载 但我们希望根据用户使用这些表的频率来减少这个数字 请建议我们如何在 Redshift 中获取此信息 This v
  • 获取奇数长度回文

    我试图找到最长的奇数长度回文 但我编写的代码没有给我完整的回文 只是其中的一部分 任何帮助都会很棒 def get odd palindrome at s index str int gt str gt get odd palindrome
  • 使用 firestore 安全规则中的替换功能

    我正在努力应对 Firestore 安全规则 我想检查需要替换功能的值 即电子邮件地址 我可以在一般安全文档中找到一些文档 但这似乎不适用于 Firestore 例如这有效 allow write if resource data memb
  • 如何获取/跟踪 ASP.NET 传出响应文本

    我的服务器似乎有时会向网络客户端返回错误的 html 我在 VS 2012 中使用 asp net 4 在 IIS Express 上进行调试 为了调试这个问题 我想跟踪asp net发送的html in the Global asax P