【问题标题】:Response.write in IIS integrated modeIIS集成模式下的Response.write
【发布时间】:2015-04-11 12:11:57
【问题描述】:

我一直在从事一个必须在 IIS 7.5 上以集成模式运行的 asp.net 项目。

当我使用Response.write("sometext") 时,IIS 会用废旧的HTML 标签包装我的文本。

看看这段代码:

protected void Application_BeginRequest(object sender, EventArgs e)
{
        Response.Clear();
        Response.ClearContent();
        StringBuilder sb = new StringBuilder();
        sb.Append("<html>");
        sb.Append("<head>");
        sb.Append("</head>");
        sb.AppendFormat("<body>");
        sb.AppendFormat("some text");
        sb.Append("</body>");
        sb.Append("</html>");
        Response.Write(sb.ToString());
        Response.End();

}

我希望从服务器收到这个:

<html>
<head>
</head>
<body>
sometext
</body>
</html>

但是服务器给了我这个:

 <html> 
 <head>
 </head>
 <body>
 <pre>
      <html><head></head><body>sometext</body></html>
 </pre>
 </body>
 </html>

有什么问题??

应用程序在VS web developer server 或IIS(在经典模式下)运行良好。

【问题讨论】:

  • 您的 aspx 文件中有 html 吗?是否定义了母版页?
  • 项目既有aspx(带html)也有母版页,但我把这些代码放在global.asax文件中
  • 是的,但是您正在渲染页面.. Default.aspx 或其他任何内容。该页面将默认呈现其母版页,这可能是您获取 head 和 pre 的地方
  • 这里是场景:我请求一个在服务器上不存在的 URL。然后在服务器可以返回 404 错误页面之前,我根据输入的 URL 生成一个动态页面。所以我们没有 .aspx 页面,也没有母版页

标签: asp.net iis-7.5 integrated-pipeline-mode


【解决方案1】:

两天后我偶然发现如果使用 Response.Flush(); 命令 IIS 无法包装响应

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多