IIS aways 返回一个空页面

Posted

技术标签:

【中文标题】IIS aways 返回一个空页面【英文标题】:IIS aways returns an empty page 【发布时间】:2012-07-31 09:25:43 【问题描述】:

我正在部署一个作为一组项目构建的网站,该解决方案被部署为一系列网站(一个项目 = 一个 url)。

编码语言是 c#,站点使用通过 linq 访问的 mssql db。

在开发服务器上一切正常,但目前,所有具有动态创建元素的页面(即所有<asp> 和自定义标签)都会输出一个包含以下源代码的空白页面。静态页面(标准 html 和 aspx)正确显示。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

我通常在 LAMP 上使用 php,这种行为不同于我在该设置中看到的任何东西。我需要一些关于此错误的原因/解决方案的新想法(最好是逐步/教程链接 - 就像我说 IIS/c#.net 不是我的正常环境)。

我尝试过的事情没有任何效果:

更改站点文件夹的权限 更改 web.config 设置 通过复制/粘贴和具有各种设置的 vb 发布选项重新部署站点文件 加上一大堆(到目前为止超过两天)的互联网研究

感谢所有回复。

编辑: 版本号:

iis: v6.1 (bulid: 7601) 操作系统:Windows 网络服务器 2008 R2 / Service Pack 1 .net:v4

第二次编辑:

示例页面:

aspx 文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dbtest.aspx.cs" Inherits="Rica.Yoodul.dbtest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>test</h1>

        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

namespace Rica.Yoodul

    public partial class dbtest : System.Web.UI.Page
    
        protected void Page_Load(object sender, EventArgs e)
        
            SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["RicaConnectionString"].ConnectionString);
            myConnection.Open();

            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo.MaritialStatus", myConnection);

            myReader = myCommand.ExecuteReader();

            while (myReader.Read())
            
                Literal1.Text = Literal1.Text + myReader["Name"].ToString();
            
            myConnection.Close();
        
    

编辑:

我没有添加的内容:根据服务器显示的其他一些行为,我认为最可能的罪魁祸首是服务器配置错误。

编辑:

好的,我已经缩小了一些原因。通过在前端文件的第一行中取出除语言属性之外的所有内容,我可以让服务器显示静态内容。#

编辑:

OK http://www.iis.net/ConfigReference 涵盖了 iis 配置文件的使用。只有我去了页面上指示的路径,我似乎根本没有任何配置文件。我该如何确认/解决这个问题?

【问题讨论】:

请提供OS版本、IIS版本、.NET版本 您说 ASPX 页面显示正确,但带有“动态创建元素”的页面却没有 - 您能解释一下后者是什么意思吗? 您是否为您的网站设置了默认页面 @DanPuzey 缺少任何 .net 控件的 ASPX 页面可以正确显示。任何其他(甚至是单个文字)空白屏幕。我已经通过一个非常简单的将查询结果转储到文字页面中进行了测试,并且它是正确的。 您是否在 IIS 中注册了 ASP?打开命令提示符并运行c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i(您的路径可能略有不同)。 【参考方案1】:

听起来您的生产服务器没有正确安装/注册 ASP.NET,因此您的页面被视为简单的文本文档而不是代码。例如,如果在安装 IIS 之前安装 .NET,有时会发生这种情况。

要确认这一点,请组合一个包含 HTML 和 ASP.NET 混合的准系统页面...

<%@ Page Language="C#" %>
<html>
    <head>
        <title>ASP.NET Hello World</title>
    </head>
    <body>
        <p>Hello from HTML</p>
        <p><%= "Hello from ASP.NET" %></p>
    </body>
</html>

如果您加载它并且只获得纯 HTML 问候语,请使用浏览器的“查看源代码”选项,看看您实际得到了什么。如果您的 ASP.NET 源代码显示在浏览器接收的源代码中,则确认 IIS 没有将其视为 ASP.NET 文件 - 这意味着 ASP.NET 未正确安装或被禁用。

【讨论】:

好的,我的两个字符串都正确显示了。自从我开始以来,首先要正确处理的事情。 再次检查浏览器的“查看源代码”窗口中是否没有 字符串,并且两个字符串都不在引号中 来源是

Hello from HTML

Hello from ASP.NET

以上是关于IIS aways 返回一个空页面的主要内容,如果未能解决你的问题,请参考以下文章

为啥 IIS 返回空响应?

Python中的空返回是啥意思? [复制]

跨浏览器javascript window.open方法

如何删除 asmx 端点?

404页面做好后,在iis设置404的url 为啥蜘蛛索引不存在的页面的时候返回的是200啊,我应该如何设置404

NetSuite SuiteTalk API 中 searchMoreWithId 操作的结果为空页