a.aspx页代码。要独占打开这个aa.txt,但是办不到,为什么呢。
在A机访问可以,在B机访问也可以。然后在两台机器上刷新就全出错了。为什么会发生这种情况呢在A机上访问可以。在B机上访问就应是出错的了呀
private void Page_Load(object sender, System.EventArgs e)
{
try
{
string path = Server.MapPath("")+"\\aa.txt";
FileStream fs = new FileStream(path,FileMode.Open,FileAccess.ReadWrite,FileShare.None);
StreamReader st = new StreamReader(fs);
Response.Write(st.ReadToEnd());
Response.Write("<br>");
}
catch(Exception ee)
{
Response.Write(ee.ToString());
Response.Write("<br>");
}
}

解决方案 »

  1.   

    重新创建一个FileStream对象就可以看出效果来了
      

  2.   

    确定其它机器访问的aspx是最新的吗?
      

  3.   

    是的。访问的都是同一个a.aspx文件为什么不能独占呢。郁闷
      

  4.   

    楼上说得简直让我太太宠拜了。事实是这样的。
    A机上正常运行a.aspx。(经过N长时间)在次运行a.aspx就会提示文件被独占打了,访问不了了。
    但在其它的机器上。
    B机上还可以正常运行a.aspx(???这是为什么,应出错才是呀???)。。(经过N长时间)在次运行a.aspx就会提示文件被独占打了,访问不了了。
      

  5.   

    private void Page_Load(object sender, System.EventArgs e)
    { // 这是第一个人正在非共享方式访问文件
    FileStream fs = new FileStream(Server.MapPath("data.txt"),FileMode.Open,FileAccess.ReadWrite,FileShare.None);
    StreamReader st = new StreamReader(fs);
    Response.Write(st.ReadToEnd()+"<br>");
    //st.Close();
    //fs.Close();
    // 由于访问文件大,还没有来的及关闭文件流,正在读中.......... // 这时候第二个人又来访问,刷新该网页,提示有另一个进程正在访问的错误,因此第二个人不能访问,除非第一个人访问完毕,关闭文件流,第二个人才能访问。
    // 注意: 为了看到效果,你把 fs 对象构造参数该成 FileShare.ReadWrite,这样第二人就可以访问了,而不必等到第一个人访问完。}