我在一个解决方案中部署了一个作为一组项目构建的站点,该站点被部署为一系列网站(一个项目=一个网址)。
编码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不是我的正常环境)。
我试过的事情没有任何影响:
感谢所有回复。
编辑: 版本号:
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配置文件的使用。只有我走到页面上指示的路径,我似乎根本没有任何配置文件。我如何确认/解决这个问题?
答案 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未正确安装或已禁用。