1

私のasp.net Webサイトに新しいページを動的に作成するコードがあり、うまく機能します。しかし、新しいページを作成してそのページに移動すると、最初の読み込みが20秒以上かかります。これは、おそらく新しいページを作成するとすべてのWebサイトが再起動するためですか?

新しいページを作成するたびにアプリケーションが再起動しないようにするにはどうすればよいですか?

II7

これは、新しいページを作成する方法を確認するための単なるサンプル コードです。コードは同じではありませんが、似ています。

string fielName = Server.MapPath("~/file.aspx");               
// create a writer and open the file
TextWriter tw = new StreamWriter(fielName);

// write a line of text to the file
tw.WriteLine(@"<%@ Page Language=""C#"" AutoEventWireup=""true"" CodeFile=""file.aspx.cs"" Inherits=""file"" %>

<!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>    
    </div>
  </form>
</body>
</html>
");

// close the stream
tw.Close();


tw = new StreamWriter(fielName + ".cs");

// write a line of text to the file
tw.WriteLine(@"using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class file : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    Response.Write(""new File "");   
  }
}
");

// close the stream
tw.Close();
4

2 に答える 2

1

新しいaspxファイルを作成するときにアプリケーションプールのリサイクルを防ぐことはできません。これらのaspxを再コンパイルすると、最終的にアプリケーションプールのリサイクルが必要になるため、IMOはそのフォーラムで良い回答を得ました.

簡単に言えば、あなたはそれを間違っています。ディスク上にページを作成する必要はありません。コード ビハインドとマークアップによって、データベースのデータに基づいて異なるページが生成されます。

これは機能しないため、変更する必要があります。

たとえば、マークアップに TextBox がある場合:

<asp:TextBox ID="txtDataFromDB" runat="Server"/>

そして、コードビハインドで:

protected void Page_Load(object sender, EventArgs e)
{          
  txtDataFromDB.Text = GetDataFromDatabase();
}

DB から取得したデータに応じて、ページに異なるコンテンツが表示されます。

于 2013-05-07T11:58:51.303 に答える
0

あなたはライフサイクルを使用していますか?

    protected void Page_Load(object sender, EventArgs e)
    {         
        if (!IsPostBack)
        {
            GenerateWebsite();                              
        }
    }

http://msdn.microsoft.com/en-us/library/bb470252%28v=vs.100%29.aspx -> もう読んだ?

于 2013-05-07T10:50:24.053 に答える