0

一連の Web サイト (1 つのプロジェクト = 1 つの URL) として展開されるソリューションで、一連のプロジェクトとして構築されたサイトを展開しています。

コーディング言語は c# で、サイトは linq 経由でアクセスされる mssql データベースを使用しています。

開発サーバーではすべて問題なく動作しますが、現時点では、動的に作成された要素 (つまり、すべての<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 発行オプションを使用してさまざまな設定でサイト ファイルを再デプロイする
  • さらに、大量の (これまでのところ 2 日間以上) のインターネット調査

すべての返信に感謝します。

編集: バージョン番号:

iis: v6.1 (bulid: 7601) OS: Windows Web サーバー 2008 R2 / Service pack 1 .net: v4

2番目の編集:

サンプルページ:

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、原因を少し絞り込みました。フロントエンドファイルの最初の行にある langauge 属性を除くすべてを削除することで、サーバーに静的コンテンツを表示させることができます.#

編集:

OK http://www.iis.net/ConfigReferenceは、iis 構成ファイルの使用をカバーしています。ページに示されているパスに移動しただけで、構成ファイルがまったくないようです。これを確認/修正するにはどうすればよいですか?

4

1 に答える 1

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 が正しくインストールされていないか、無効になっていることを意味します。

于 2012-07-31T11:06:52.027 に答える