IIS aways返回一个空页面

时间:2012-07-31 09:25:43

标签: c# iis

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

编码lanague是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 Web服务器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();
        }
    }
}

编辑:

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

编辑:

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

编辑:

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

1 个答案:

答案 0 :(得分:0)

听起来您的生产服务器没有正确安装/注册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未正确安装或已禁用。