代码:
.....
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
FileStream fs0 = new FileStream(Server.MapPath(".") + "\\HOME\\register.txt", FileMode.Open, FileAccess.Read);
//打开文本文件
StreamReader sr0 = new StreamReader(fs0, Encoding.Default);
string reg_info = sr0.ReadLine();
sr0.Close();
fs0.Close();
if (reg_info != MACCPU_PASS)
{ int counter;
FileStream fs = new FileStream(Server.MapPath(".") + "\\HOME\\counter.txt", FileMode.Open, FileAccess.Read);
//打开文本文件
StreamReader sr = new StreamReader(fs, Encoding.Default);
string num = sr.ReadLine();
if (num == "")
counter = 0;
else
counter = Int32.Parse(num);
sr.Close();
fs.Close();
if (counter <= 5)
{
int counter_new = counter + 1;
fs = new FileStream(Server.MapPath(".") + "\\HOME\\counter.txt", FileMode.Create, FileAccess.Write);
//建立StreamWriter为写做准备
StreamWriter rw = new StreamWriter(fs, Encoding.Default);
//使用WriteLine写入内容
rw.WriteLine(counter_new.ToString());
//将缓冲区的内容写入文件
//关闭rw对象
rw.Close();
fs.Close();
}
else
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["schoolmanage2005ConnectionString"].ConnectionString);
SqlCommand comm = new SqlCommand("delete from Role_user", conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("~/HOME/xueke.aspx");
}
}
impersonationContext.Undo();
}
............
在开发的本机上可以读\写 HOME\register.txt文件,可以部署到目标计算机上时,没有这段好象没有执行(我看HOME\register.txt的侄没有变化),是在目标计算机上没有找到HOME\register.txt文件?还是怪我用了本地模拟?,怎样解决呢?
.....
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
FileStream fs0 = new FileStream(Server.MapPath(".") + "\\HOME\\register.txt", FileMode.Open, FileAccess.Read);
//打开文本文件
StreamReader sr0 = new StreamReader(fs0, Encoding.Default);
string reg_info = sr0.ReadLine();
sr0.Close();
fs0.Close();
if (reg_info != MACCPU_PASS)
{ int counter;
FileStream fs = new FileStream(Server.MapPath(".") + "\\HOME\\counter.txt", FileMode.Open, FileAccess.Read);
//打开文本文件
StreamReader sr = new StreamReader(fs, Encoding.Default);
string num = sr.ReadLine();
if (num == "")
counter = 0;
else
counter = Int32.Parse(num);
sr.Close();
fs.Close();
if (counter <= 5)
{
int counter_new = counter + 1;
fs = new FileStream(Server.MapPath(".") + "\\HOME\\counter.txt", FileMode.Create, FileAccess.Write);
//建立StreamWriter为写做准备
StreamWriter rw = new StreamWriter(fs, Encoding.Default);
//使用WriteLine写入内容
rw.WriteLine(counter_new.ToString());
//将缓冲区的内容写入文件
//关闭rw对象
rw.Close();
fs.Close();
}
else
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["schoolmanage2005ConnectionString"].ConnectionString);
SqlCommand comm = new SqlCommand("delete from Role_user", conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("~/HOME/xueke.aspx");
}
}
impersonationContext.Undo();
}
............
在开发的本机上可以读\写 HOME\register.txt文件,可以部署到目标计算机上时,没有这段好象没有执行(我看HOME\register.txt的侄没有变化),是在目标计算机上没有找到HOME\register.txt文件?还是怪我用了本地模拟?,怎样解决呢?
那么你的语句就是 fs = new FileStream(@"http://127.0.0.1/Root/HOME/counter.txt", FileMode.Create, FileAccess.Write);
找不到理所当然
在2003系统下,可以分别采用虚拟目录,网站的方式开发。如果你的操作系统是2003,你可以分别以这两种方式Debug,可以发现这个问题。
解决办法,根据实际情况,以网站形式部署或者以虚拟路径方式部署就可以了。