发第6次帖了,累了,再不行就放弃了,做一个使用次数的计数器就这么难吗?..

yezby20061022 2006-10-25 11:42:32
要做一个使用记数器,用一个文本文件HOME\counter.txt记录使用次数.
基本结构:
void Session_Start(object sender, EventArgs e)
{
..
读HOME\counter.txt
判断<=50
写HOME\counter.txt
..
}
给我一个方法吧,为这个东西折腾了6天了!没办法啊!基本上所有的方法都是在开发机器上HOME\counter.txt可读可写,一旦部署到服务器上就找不到这个文件(因为登录时它的次数没有改变)
...全文
521 32 打赏 收藏 举报
写回复
32 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
真相重于对错 2006-10-26
  • 打赏
  • 举报
回复
600分就这么没了
batiraul 2006-10-26
  • 打赏
  • 举报
回复
咳,都没说到点子上,你就把string num = sr.ReadLine();改为 string num = sr.ReadToEnd().ToString();
要不就用log4net.dll,到处都有下载的

shalen520 2006-10-25
  • 打赏
  • 举报
回复
1.路径不对
2.没有写的权限
Ivony 2006-10-25
  • 打赏
  • 举报
回复
报什么错?如果找不到文件就肯定是路径错误,直接调试你产生的路径。再说MapPath哪里是你那样用的,直接MapPatrh("虚拟路径")如MapPath("~/HOME/")。
先理清思路弄清概念查出问题再来问。
fengfangfang 2006-10-25
  • 打赏
  • 举报
回复
counter <= 5 才写文件,是不是已经>5了
fengfangfang 2006-10-25
  • 打赏
  • 举报
回复
写个测试程序,看看你的counter.txt文件在程序中能不能取到
股神 2006-10-25
  • 打赏
  • 举报
回复
yezby20061022 2006-10-25
  • 打赏
  • 举报
回复
继续等待!!!!!!!!11
hegang888888888 2006-10-25
  • 打赏
  • 举报
回复
bang ding
nZAI 2006-10-25
  • 打赏
  • 举报
回复
初看是斜杠错了
yezby20061022 2006-10-25
  • 打赏
  • 举报
回复
部署的机器上HOME\counter.txt文件是可读可写的,还有什么原因呢,我实在没有办法啊,
yezby20061022 2006-10-25
  • 打赏
  • 举报
回复
给我一段代码吧,谢谢了
yezby20061022 2006-10-25
  • 打赏
  • 举报
回复
看看我的代码啊哪里错了
int counter;
FileStream fs = new FileStream(Server.MapPath(@"\HOME\counter.txt"), FileMode.Open, FileAccess.Read);
//打开文本文件
//StreamReader sr = new StreamReader(Server.MapPath(@"\HOME\counter.txt"));
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(Server.MapPath(@"\HOME\counter.txt"));
StreamWriter rw = new StreamWriter(fs, Encoding.Default);
//使用WriteLine写入内容
rw.WriteLine(counter_new.ToString());
//将缓冲区的内容写入文件
//关闭rw对象
rw.Close();
fs.Close();
.....
用过:FileStream fs0 = new FileStream(Server.MapPath(".") + "\\HOME\\register.txt", FileMode.Open, FileAccess.Read);
用过:FileStream fs0 = new FileStream(Server.MapPath("~") + "\\HOME\\register.txt", FileMode.Open, FileAccess.Read);
都不行的
ustbwuyi 2006-10-25
  • 打赏
  • 举报
回复
设个断点调试一下,看看读txt文件的时候哪里出了错。。为什么找不到文件。。
oldmoon 2006-10-25
  • 打赏
  • 举报
回复
对发生的错误,进行捕捉一下,看哪个环节出了问题!!!!
孟子E章 2006-10-25
  • 打赏
  • 举报
回复
这是很简单的,部署不行,你到部署的机器上找原因,另外,在代码里加错误处理,看哪行,什么语句、什么原因出问题
IMGGTOO 2006-10-25
  • 打赏
  • 举报
回复
我被钻石耀了一下眼,楼主的东东和下面的东东全都看不见了..............
jsnjzyx 2006-10-25
  • 打赏
  • 举报
回复
用数据库记录吧,我以前也做过相应的网页计数器,一开始也用的文本文件来记录的,后来发现太麻烦,正常情况下都能写能读,但不知道什么时候,经常对文本的读取出错,有时还会报“类型转换错误”之类的问题,后来干脆改成数据库了,从此就从没出现的问题


LZ的这段代码是sou的吧,网上搜一下有不少是用文本写的,其实用数据库更方便更安全。
lannicks 2006-10-25
  • 打赏
  • 举报
回复
To LZ:开发环境可以,部署不行,以前也遇过。以前解决如下。
如果你开发的时候是以虚拟路径的形式开发web应用程序的,那么部署的时候就要部署为虚拟目录。如果你开发的时候是以网站的方式开发web应用程序,那么部署的时候必须部署为一个网站。这两者在路径上有一个细微的差别,应该是虚拟目录的对应路径多一层,网站少一层。
在2003系统下,可以分别采用虚拟目录,网站的方式开发。如果你的操作系统是2003,你可以分别以这两种方式Debug,可以发现这个问题。
解决办法,根据实际情况,以网站形式部署或者以虚拟路径方式部署就可以了。

如果还不行,那就把你的开发的操作系统,开发环境,开发方式(虚拟路径/网站),及部署的操作系统,部署方式(虚拟路径/网站)等其他情况说明下。
ldw701 2006-10-25
  • 打赏
  • 举报
回复
代码记得lock和unlock
加载更多回复(12)
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-25 11:42
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。