2
這是在我意識到Calender控件存在之前所做的代碼。並且請不要介意錯字[canlender]!此特定ASPX文件上的IIS服務器錯誤
不知何故,此代碼正在使整個IIS [服務不可用]的狀態。做網絡停止w3svc /網絡啓動w3svc將無法工作。主機提供商說[你做了什麼?]。在我的電腦上(Win8上的IIS)也會凍結。
我沒有發現任何會導致服務器無法服務的問題。這只是創建和修改控制...任何關於這個問題的原因的想法?
謝謝。
calender.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class member_Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
int currday = 1;
int len = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
switch (new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).DayOfWeek) {
case DayOfWeek.Sunday: currday = 1; break;
case DayOfWeek.Monday: currday = 0; break;
case DayOfWeek.Tuesday: currday = -1; break;
case DayOfWeek.Wednesday: currday = -2; break;
case DayOfWeek.Thursday: currday = -3; break;
case DayOfWeek.Friday: currday = -4; break;
case DayOfWeek.Saturday: currday = -5; break;
}
TableRow tr = new TableRow();
TableHeaderCell tst;
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Sun"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Mon"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Tue"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Wed"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Thu"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Fri"; tr.Controls.Add(tst);
tst = new TableHeaderCell(); tst.CssClass = "single_day"; tst.Text = "Sat"; tr.Controls.Add(tst);
tblCanlender.Controls.Add(tr);
int a=0;
while (currday <= len && a++<50)
{
tr=new TableRow();
for (int i = 0; i < 7; i++) {
TableCell tc = new TableCell();
if (currday >= 1 && currday <= len) {
tc.CssClass = "single_day_body";
tc.Text = currday.ToString();
tc.Controls.Add(tc);
LinkButton lnk = new LinkButton();
lnk.Text = "Add";
tc.Controls.Add(lnk);
}
tr.Controls.Add(tc);
currday++;
}
tblCanlender.Controls.Add(tr);
}
}
}
calender.aspx
<%@ Page Language="C#" EnableViewState ="false" AutoEventWireup="true" CodeFile="calender.aspx.cs" Inherits="member_Default" %>
<style type="text/css">
.single_day{
width:80px;
height:40px;
background:#DDD;
}
.single_day_body{
width:80px;
height:80px;
text-align:left;
vertical-align:top;
background:#FFF;
}
table, th, tr, td, thead, tbody {
border: 0;
margin: 0;
padding: 0;
}
a.insertdate, a.insertdate:visited, a.insertdate:link {
color:gray;
text-decoration:none;
}
a.insertdate:hover {
color:#DDD;
}
</style>
<asp:Table runat="server" id="tblCanlender" style="width:100%;border:1px solid gray;background:#EEE"></asp:table>
看起來像IIS這次產生了正確的錯誤。謝謝! ......但是在做這個引用之後,IIS被凍結的奇怪......它可以被認爲是服務器軟件的一個bug嗎? – Soreepeong
我想你可以認爲它是一個錯誤,但是我不希望iis以不同的方式處理這種情況。這可能會導致堆棧溢出,因爲每次創建var TC的html時,解析器都將繼續其子元素TC。這不能永遠持續下去:) – Kristof
是啊...我喜歡如果ASP.net會顯示堆棧溢出錯誤。感謝您的建議! – Soreepeong